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








