fix(files): .whiteboard белый экран — не прятать chrome (сносился #body-user)
Скрипт HIDE_F7CLOUD_CHROME_JS делал hide(#body-user) — это ВЕСЬ контейнер приложения Nextcloud; на Collabora-странице документ в отдельном #documents-content, а на Files-странице (whiteboard) внутри #body-user лежит и сам viewer → удалялось всё → белый экран. Теперь скрипт инжектится ТОЛЬКО для Collabora (collaboraBaseUrl не пуст); для web-файлов chrome не трогаем — доска рисуется в штатном viewer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -346,10 +346,11 @@ class OfficeEditorActivity : ComponentActivity() {
|
||||
},
|
||||
onPageReady = { view ->
|
||||
runOnUiThread {
|
||||
view?.evaluateJavascript(HIDE_F7CLOUD_CHROME_JS, null)
|
||||
// Web-файлы (whiteboard и пр.): Collabora-JS-моста нет, готовность = загрузка
|
||||
// страницы. Иначе всегда срабатывал таймаут «редактор не ответил вовремя».
|
||||
if (launch.collaboraBaseUrl.isBlank()) {
|
||||
if (launch.collaboraBaseUrl.isNotBlank()) {
|
||||
view?.evaluateJavascript(HIDE_F7CLOUD_CHROME_JS, null)
|
||||
} else {
|
||||
// Web-файлы (whiteboard и пр.): Collabora-моста нет — готовность = загрузка
|
||||
// страницы; chrome НЕ прячем (иначе снесётся весь контейнер приложения).
|
||||
editorVisible = true
|
||||
loadError = null
|
||||
}
|
||||
|
||||
@@ -23,12 +23,17 @@ internal class OfficeWebViewClient(
|
||||
private val onPageReady: (WebView?) -> Unit,
|
||||
) : WebViewClient() {
|
||||
|
||||
// Скрытие chrome forbion — ТОЛЬКО для Collabora-страницы (там документ в отдельном
|
||||
// #documents-content). На Files-странице (whiteboard и пр.) этот скрипт сносит #body-user
|
||||
// = весь контейнер приложения → белый экран. Поэтому для web-файлов не инжектим.
|
||||
private val hideChrome: Boolean get() = launch.collaboraBaseUrl.isNotBlank()
|
||||
|
||||
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
||||
view?.evaluateJavascript(OfficeEditorActivity.HIDE_F7CLOUD_CHROME_JS, null)
|
||||
if (hideChrome) view?.evaluateJavascript(OfficeEditorActivity.HIDE_F7CLOUD_CHROME_JS, null)
|
||||
}
|
||||
|
||||
override fun onPageFinished(view: WebView?, url: String?) {
|
||||
view?.evaluateJavascript(OfficeEditorActivity.HIDE_F7CLOUD_CHROME_JS, null)
|
||||
if (hideChrome) view?.evaluateJavascript(OfficeEditorActivity.HIDE_F7CLOUD_CHROME_JS, null)
|
||||
onPageReady(view)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user