我在某些没有更新的Webview引擎或Cordova Webview不支持的奇怪浏览器的手机上遇到下一个错误。

07-27 13:50:47.233 14356-14356/com.locknot I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Object.assign is not a function", source: file:///android_asset/www/vendor.6356da77cc5903aae591.bundle.js (1)

我想捕获此错误,以便向用户显示一个对话框,说明他的手机不兼容。

我该怎么做?对不起我的英语不好。

最佳答案

您可以扩展WebChromeClient类并覆盖其onConsoleMessage()方法。此方法从显示的网站中接收所有控制台消息。最后,通过setWebChromeClient()方法将此WebChromeClient的实例设置为WebView。所以Kotlin代码看起来像这样:

webView.webChromeClient = object : WebChromeClient() {
    override fun onConsoleMessage(consoleMessage: ConsoleMessage?): Boolean {
        if (consoleMessage != null && consoleMessage.message().contains("Uncaught TypeError", false)) {
            // show user a dialog
        }
        return super.onConsoleMessage(consoleMessage)
     }
}

10-07 19:40