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

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

Обновлено: 05.08.26

Чтобы получить доступ к функциям редактора в своем мобильном приложении, интегрируйте его с редакторами Р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.

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

}

2. Чтобы начать работу с документами, откройте редактор Р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())
}

3. На панели инструментов Android Studio выберите свое приложение и устройство, на котором оно будет запущено. После этого нажмите кнопку «Запустить» на панели инструментов проекта, чтобы создать и запустить код;

4. Приложение откроется, чтобы продемонстрировать пример интеграции мобильных веб-редакторов Р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)
    }

}

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое