我在某些没有更新的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)
}
}