跳到主要内容

安卓设备上的移动集成

本节我们将通过 WebView 使用 Android 移动演示示例(可在 GitHub 获取)展示集成流程。

基于 ONLYOFFICE 测试示例的集成

本示例演示如何将 ONLYOFFICE 移动端网页编辑器与 ONLYOFFICE 测试或 DMS 示例集成。

通过测试示例的 Android 集成

打开 ONLYOFFICE 编辑器

  1. 下载并安装ONLYOFFICE文档企业版开发者版

  2. GitHub下载 Android 移动演示示例。

  3. 使用 Android Studio 打开顶层的 build.gradle 文件,修改示例代码片段以适配您的 DMS 系统。

  4. 在模块级 build.gradle 文件中,通过设置 DOCUMENT_SERVER_URL 属性值指定 ONLYOFFICE 文档网页界面地址来显示 DMS 主页:

    buildConfigField("String", "DOCUMENT_SERVER_URL", "https://documentserver/")

    其中 documentserver 是已安装 ONLYOFFICE 文档的服务器名称。

    若未指定 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()
    }
    Android error Android managing
  5. 使用 MainFragment.kt 控制器实现 Android 设备上通过 WebView 正确打开编辑器。在该控制器中定义通过 WebView 组件打开文档的函数,检测 URL 是否包含标识文档打开的 "editor" 字符串:

    private class MainWebViewClient(private val navController: NavController) : WebViewClient() {

    override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
    val url = request?.url
    if (url != null) {
    val path = url.path
    if (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 完整代码请参见此处

  6. EditorFragment.kt 控制器中配置 WebView 及布局,通过 WebView 组件在移动设备显示 ONLYOFFICE 编辑器:

    @SuppressLint("SetJavaScriptEnabled")
    private fun setSettings() {
    webView?.settings?.apply {
    javaScriptEnabled = true
    javaScriptCanOpenWindowsAutomatically = true
    loadWithOverviewMode = true
    cacheMode = WebSettings.LOAD_NO_CACHE
    domStorageEnabled = true
    }
    webView?.webViewClient = EditorWebViewClient(findNavController())
    }
  7. 在 Android Studio 工具栏中选择应用和设备,点击项目工具栏中的运行按钮构建并运行代码。

  8. 应用将展示 ONLYOFFICE 移动网页编辑器与测试/DMS 示例的集成效果。

关闭 ONLYOFFICE 编辑器

使用 EditorFragment.kt 控制器退出编辑器:

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 完整代码请参见此处