安卓设备上的移动集成
文档编辑器可以通过 WebView 组件嵌入到 Android 应用中。完整的演示项目可在 GitHub 上获取。
基于 ONLYOFFICE 测试示例的集成
本示例演示如何将 ONLYOFFICE 移动端网页编辑器与 ONLYOFFICE 测试或 DMS 示例集成。

打开 ONLYOFFICE 编辑器
-
从 GitHub 下载 Android 移动演示示例。
-
使用 Android Studio 打开项目。
-
在模块级
build.gradle文件中,将DOCUMENT_SERVER_URL属性设置为您的 ONLYOFFICE 文档实例地址:buildConfigField("String", "DOCUMENT_SERVER_URL", "https://documentserver/")其中
documentserver是已安装 ONLYOFFICE 文档的服务器名称。提示还没有文档服务器?注册免费的 ONLYOFFICE 文档云,并使用实例的公共 IP 地址或公共 DNS 名称作为
documentserver。您可以在云控制台的实例部分找到它们。若
DOCUMENT_SERVER_URL为空,应用将显示错误对话框,而非加载文档管理器页面:private fun showDialog() {AlertDialog.Builder(requireContext()).setMessage("Document server url is empty.\nYou must specify the address in build.gradle").setPositiveButton("Ok") { dialog, _ ->dialog.dismiss()requireActivity().finish()}.create().show()}
-
MainFragment.kt控制器负责从文档管理器到文档编辑器的导航。当用户点击文档时,控制器拦截 URL,检查是否包含"editor"字符串,若包含则导航到编辑器 fragment:private class MainWebViewClient(private val navController: NavController) : WebViewClient() {override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {val url = request?.urlif (url != null) {val path = url.pathif (path?.contains("editor") == true) {navController.navigate(R.id.action_mainFragment_to_editorFragment, Bundle(1).apply {putString("document_url", url.toString())})return true}return false}return super.shouldOverrideUrlLoading(view, request)}}MainFragment.kt完整代码请参见此处。 -
EditorFragment.kt控制器通过 WebView 组件显示文档编辑器。按如下方式配置 WebView 设置和布局:@SuppressLint("SetJavaScriptEnabled")private fun setSettings() {webView?.settings?.apply {javaScriptEnabled = truejavaScriptCanOpenWindowsAutomatically = trueloadWithOverviewMode = truecacheMode = WebSettings.LOAD_NO_CACHEdomStorageEnabled = true}webView?.webViewClient = EditorWebViewClient(findNavController())}load()方法将type参数设置为"mobile",以优化触摸屏的编辑器界面:private fun load() {url?.let {val loadUrl = it.toString()if (it.query?.contains("docxf") == true) {webView?.loadUrl(loadUrl)} else {webView?.loadUrl(loadUrl.replace("type=desktop", "type=mobile"))}}} -
在 Android Studio 工具栏中选择应用和目标设备,然后点击运行按钮构建并启动应用。
-
应用将打开文档管理器页面。选择文档即可在文档编辑器中打开。
关闭 ONLYOFFICE 编辑器
EditorFragment.kt 控制器同时负责退出编辑器。当用户离开编辑器(URL 不再包含 "editor")时,控制器将返回文档管理器:
private class EditorWebViewClient(private val navController: NavController) : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
request?.url?.let { url ->
if (!url.toString().contains("editor")) {
navController.popBackStack()
return true
}
}
return super.shouldOverrideUrlLoading(view, request)
}
}
EditorFragment.kt 完整代码请参见此处。