Android WebView在Api 20上不显示内容

时间:2019-11-05 08:37:52

标签: android kotlin webview android-webview android-websettings

我的应用程序中有一个WebView。它可以正常工作,但在Api 20上,WebView不会显示内容。

我检查了日志并看到这些错误

I/chromium: [INFO:CONSOLE(7)] "The key "shrink-to-fit" is not recognized and ignored.", source: https://...

I/chromium: [INFO:CONSOLE(43)] "Uncaught SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode", source: https://... (43)

我概述了一些答案,他们通常建议使用

webView.settings.useWideViewPort = true
webView.settings.loadWithOverviewMode = true

我已经实现了这些设置,但是仍然发生相同的错误。 WebView显示注意

这是我的WebView设置

/**
 * Initialize the WebView
 */
@SuppressLint("SetJavaScriptEnabled")
private fun initWebView() {

    webView.webViewClient = object : WebViewClient() {

        @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
        override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {

            return super.shouldOverrideUrlLoading(view, request)
        }

        override fun onPageStarted(
            view: WebView, url: String, favicon: Bitmap?) {
            showProgressDialog()
        }

        override fun onPageFinished(view: WebView, url: String) {
            hideProgressDialog()
        }

        @RequiresApi(api = Build.VERSION_CODES.M)
        override fun onReceivedError(view: WebView, request: WebResourceRequest, error: WebResourceError) {
            // Your code to do
            hideProgressDialog()
        }

        override fun onReceivedError(view: WebView, errorCode: Int, description: String, failingUrl: String) {
            // Handle the error
            hideProgressDialog()
        }

        override fun onReceivedSslError(view: WebView, handler: SslErrorHandler?, error: SslError) {
            // ignore ssl error
            if (handler != null) {
                handler.proceed()
            } else {
                super.onReceivedSslError(view, null, error)
            }
        }
    }

    webView.isHorizontalScrollBarEnabled = false
    webView.settings.javaScriptEnabled = true
    webView.settings.useWideViewPort = true
    webView.setInitialScale(1)
    webView.settings.loadWithOverviewMode = true
    context?.let { webView.setBackgroundColor(ContextCompat.getColor(it, R.color.colorDarkBlue)) }

    }

    /**
     * Load url
     */
    private fun loadPage(url: String) {
        webView.loadUrl(url)
    }

有人有主意吗?感谢您的帮助

0 个答案:

没有答案