Когда мое приложение запускается изначально, не на всех устройствах, а на разных версиях Android + эмуляторе, веб-просмотры и заголовок моей панели инструментов будут просто белыми (текст установлен правильно, а URL-адрес веб-просмотра загружен правильно). Когда я просто возобновляю / закрываю приложение (не закрывайте его полностью, просто возобновляете), мое приложение работает нормально. Во время отладки ничего полезного не было обнаружено, потому что, кажется, все работает нормально, как и должно быть.
Одной из проблем является название моей панели инструментов. Он настроен правильно, но не будет отображаться, пока я не возобновлю свое приложение.
(toolBarTitle - «Сообщество»)
toolbar_title.text = toolBarTitle
toolbar_title.visibility = View.VISIBLE
Мой WebView не отображается ни до тех пор, пока не возобновится
private fun initWebViews() {
for (webView in webViewArray) {
webView.settings.run {
javaScriptEnabled = true
domStorageEnabled = true
allowFileAccess = true
allowContentAccess = true
}
webView.addJavascriptInterface(JavaScriptBridge(this), "Android")
(webView.parent as SwipeRefreshLayout).setOnRefreshListener {
webView.clearCache(true)
webView.loadUrl("about:blank")
webView.reload()
webView.loadUrl(webView.url)
}
webView.webViewClient = object : WebViewClient() {
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
//super.onPageStarted(view, url, favicon)
webView.tag = "started"
webViewsInitialized += 1
if (!NetworkHandler.hasActiveInternetConnection(applicationContext)) {
include_no_connection.visibility = View.VISIBLE
}
if (view == getCurrentWebView()) {
showLoading()
url?.let { handleToolbarTitle(viewanimator_main.displayedChild, it) }
}
// desc: Wenn beim Logout die logoutpage aufgerufen wird dann den weiteren logout prozess initieren
if (url!!.contains("logout.php")) {
isLoggedOut = true
initiateLogout()
}
}
override fun onPageFinished(view: WebView?, url: String) {
//super.onPageFinished(view, url)
webView.tag = "finished"
view?.scrollTo(0, 0)
if (view == getCurrentWebView()) {
hideLoading()
(view.parent as SwipeRefreshLayout).isRefreshing = false
if (include_no_connection.visibility == View.VISIBLE && NetworkHandler.hasActiveInternetConnection(applicationContext)) {
include_no_connection.visibility = View.GONE
}
}
webView.evaluateJavascript(JS_CUSTOMER_ID_CHANGED) {}
webView.evaluateJavascript(JS_NOTIFICATIONS) {}
Log.d(TAG, "PageFinished " + view?.url);
}
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
super.shouldOverrideUrlLoading(view, request)
val currentUrl = request?.url.toString()
// desc: Externe Links werden im Browser geöffnet
if (!currentUrl.contains(DTW)) {
view?.context?.startActivity(Intent(ACTION_VIEW, Uri.parse(currentUrl)))
return true
}
// desc: Wenn die angesteuerte url für einen anderen tab bestimmt ist wird diese umgeleitet
val mappedResult = MappingUtil.mapTargetUrl(currentUrl, viewanimator_main.displayedChild)
if (viewanimator_main.displayedChild != mappedResult && webView != webview_community && webViewArray[mappedResult].url != currentUrl) {
selectNavItem(mappedResult, false)
webViewArray[mappedResult].loadUrl(currentUrl)
showLoading()
return true
}
return false
}
}