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 ->
|
onPageReady = { view ->
|
||||||
runOnUiThread {
|
runOnUiThread {
|
||||||
view?.evaluateJavascript(HIDE_F7CLOUD_CHROME_JS, null)
|
if (launch.collaboraBaseUrl.isNotBlank()) {
|
||||||
// Web-файлы (whiteboard и пр.): Collabora-JS-моста нет, готовность = загрузка
|
view?.evaluateJavascript(HIDE_F7CLOUD_CHROME_JS, null)
|
||||||
// страницы. Иначе всегда срабатывал таймаут «редактор не ответил вовремя».
|
} else {
|
||||||
if (launch.collaboraBaseUrl.isBlank()) {
|
// Web-файлы (whiteboard и пр.): Collabora-моста нет — готовность = загрузка
|
||||||
|
// страницы; chrome НЕ прячем (иначе снесётся весь контейнер приложения).
|
||||||
editorVisible = true
|
editorVisible = true
|
||||||
loadError = null
|
loadError = null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,12 +23,17 @@ internal class OfficeWebViewClient(
|
|||||||
private val onPageReady: (WebView?) -> Unit,
|
private val onPageReady: (WebView?) -> Unit,
|
||||||
) : WebViewClient() {
|
) : 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?) {
|
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?) {
|
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)
|
onPageReady(view)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user