Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Интеграция мобильных веб-редакторов Р7 на платформе ANDROID

Обновлено: 25.12.25

Интеграция мобильных веб-редакторов Р7 на платформе ANDROID

Чтобы получить доступ к функциям редактора в своем мобильном приложении, интегрируйте его с редакторами Р7 через компонент WebView — системный компонент, отвечающий за открытие веб-страниц в приложениях. После этого пользователи смогут просматривать, создавать и редактировать текстовые документы, электронные таблицы и презентации, заполнять формы и читать PDF-файлы прямо на своих устройствах iOS или Android.

В этом разделе мы рассмотрим процесс интеграции через WebView ↗ на примере мобильного демо-образца для Android.

Интеграция на базе тестового образца Р7

Этот пример демонстрирует, как интегрировать мобильные веб-редакторы Р7 с тестом Р7  или тестом DMS:

Открытие редакторов Р7:

  1. Загрузите и установите Р7 Document Server.
  2. Откройте файл build.gradle верхнего уровня в Android Studio ↗, чтобы изменить фрагменты кода этого примера, чтобы ваша DMS работала правильно.
  3. Для отображения главной страницы вашего DMS укажите адрес веб-интерфейса Сервера документов в значении свойства DOCUMENT_SERVER_URL в файле build.gradle уровня модуля:
    buildConfigField("String", "DOCUMENT_SERVER_URL", "https://documentserver/")
    

    Где documentserver — это имя сервера, на котором установлен Сервер документов Р7.

    Если указан DOCUMENT_SERVER_URL, загружается главная страница DMS. В противном случае возникает ошибка:

    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()
    }
    

    DocumentServerURL не указан

    Указан DocumentServerURL

  4. Используйте контроллер MainFragment.kt, чтобы корректно открывать редакторы на устройствах Android. В этом контроллере определите функцию для открытия документа через компонент WebView. Запросите URL-адрес и проверьте, содержит ли он строку «редактор», указывающую, что документ будет открыт:
    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)
        }
    
    }
    
  5. Чтобы начать работу с документами, откройте редактор Р7 на мобильном устройстве через компонент WebView. Для этого настройте WebView и макет в контроллере EditorFragment.kt следующим образом:
    @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())
    }
    
  6. На панели инструментов Android Studio выберите свое приложение и устройство, на котором оно будет запущено. После этого нажмите кнопку «Запустить» на панели инструментов проекта, чтобы создать и запустить код.
  7. Приложение откроется, чтобы продемонстрировать пример интеграции мобильных веб-редакторов Р7 с тестовой версией Р7 или образцом DMS.

Закрытие редакторов Р7:

Используйте контроллер 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)
    }

}