通过打印控制台消息或通过远程调试来排除 WebView 故障
将 webview 控制台消息打印到 logcat
要从网页处理 console
消息,你可以覆盖 WebChromeClient
中的 onConsoleMessage
:
final class ChromeClient extends WebChromeClient {
@Override
public boolean onConsoleMessage(ConsoleMessage msg) {
Log.d(
"WebView",
String.format("%s %s:%d", msg.message(), msg.lineNumber(), msg.sourceId())
);
return true;
}
}
并将其设置在你的活动或片段中:
webView.setWebChromeClient(new ChromeClient());
所以此示例页面:
<html>
<head>
<script type="text/javascript">
console.log('test message');
</script>
</head>
<body>
</body>
</html>
将日志’测试消息’写入 logcat:
WebView:测试消息 sample.html:4
chrome-client 也支持 console.info()
,console.warn()
和 console.error()
。
使用 Chrome 远程调试 Android 设备
你可以从桌面 Chrome 远程调试基于 webview 的应用程序。
在 Android 设备上启用 USB 调试
在 Android 设备上,打开设置,找到开发人员选项部分,然后启用 USB 调试。
连接并发现你的 Android 设备
在 Chrome 页面中打开页面: chrome:// inspect /#devices
在检查设备对话框中,选择你的设备并按检查。Chrome 的 DevTools 的新实例在你的开发机器上打开。
有关 DevTools 的更详细指南和说明,请访问 developers.google.com