即使页面成功完成加载,Android WebView也不显示该页面

问题描述 投票:0回答:1

我添加了Internet权限,并且我还使用了WebViewClient.onPageFinished方法来检查该页面是否已加载,事实证明确实如此。 JavaScript is also enabled代表我的WebView

我用于设置网络视图的代码

webView.webChromeClient = KeplerWebChromeClient(progressBar)
webView.webViewClient = keplerWebViewClient

webView.settings.javaScriptEnabled = true
webView.settings.useWideViewPort = true
webView.settings.loadWithOverviewMode = true
webView.settings.setSupportZoom(true)
webView.settings.setSupportMultipleWindows(true)
webView.scrollBarStyle = View.SCROLLBARS_INSIDE_OVERLAY
webView.setBackgroundColor(Color.WHITE)

我正在使用KeplerWebChromeClient显示网页加载进度。

[keplerWebViewClientWebViewClient类的对象,我用于加载网页并跟踪网页是否已完成加载。

而且我必须提到,这个问题并不总是会出现。有时,当我运行我的应用程序时,WebView可以正常工作,并且可以正确加载并显示网页,而其他时候则不能。我发现以下陈述的[[logcat条目对于不显示网页时是唯一的。

E /铬:[ERROR:tile_manager.cc(778)]警告:超出了图块内存限制,某些内容可能无法绘制

[[ERROR:tile_manager.cc(778)]警告:已超出图块内存限制,某些内容可能无法绘制

E /铬:[ERROR:tile_manager.cc(778)]警告:超出了图块内存限制,某些内容可能无法绘制

E /铬:[ERROR:tile_manager.cc(778)]警告:超出了图块内存限制,某些内容可能无法绘制

这里有什么问题,我该如何解决?预先感谢。

编辑:我从手机中清除了所有应用程序数据,然后重新启动了我的应用程序。这样做之后,一切工作正常。我可以使用WebView进行浏览,但是在使用该应用几次后,即关闭并打开它,问题再次出现。清除所有数据可暂时解决问题。这对解决问题有什么帮助?

android android-webview
1个回答
0
投票
我必须尝试,对我来说很好用。

private fun setupWebView(url: String) { webView.settings.javaScriptEnabled = true webView.settings.domStorageEnabled = true webView.settings.setPluginState(WebSettings.PluginState.ON); webView.settings.allowFileAccess = true; webView.webViewClient = WebClient() webView.webChromeClient = CustomWebChromeClient() webView.loadUrl(url) } private inner class WebClient : WebViewClient() { override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) { super.onPageStarted(view, url, favicon) } override fun onPageCommitVisible(view: WebView, url: String) { super.onPageCommitVisible(view, url) } override fun shouldOverrideUrlLoading( view: WebView, url: String ): Boolean { view.loadUrl(url) return true } override fun onPageFinished(view: WebView, url: String) { super.onPageFinished(view, url) } } private inner class CustomWebChromeClient : WebChromeClient() { override fun onJsAlert( view: WebView, url: String, message: String, result: JsResult ): Boolean { return false } }

我希望它对您有用!
© www.soinside.com 2019 - 2024. All rights reserved.