您可以使用 console
JavaScript API 调试 JavaScript,并查看
在 Logcat 中查看输出消息。如果您熟悉如何调试网页
Firebug 或 Web Inspector,那么你可能对使用 console
比较熟悉
(例如 console.log()
)。Android 的 WebKit 框架支持大部分
API,这样您就可以在
WebView
。本主题介绍了如何使用
用于调试的控制台 API
在 WebView 中使用控制台 API
在 WebView
中调试时也支持控制台 API。您必须
提供
WebChromeClient
,用于实现
该
onConsoleMessage()
方法,在 Logcat 中显示控制台消息。然后,应用
通过以下账号将 WebChromeClient
转入您的 WebView
:
setWebChromeClient()
。
如需了解详情,请参阅 Webview
文档。
以下示例展示了如何在 WebView
中使用控制台 API:
Kotlin
val myWebView: WebView = findViewById(R.id.webview) myWebView.webChromeClient = object : WebChromeClient() { override fun onConsoleMessage(message: ConsoleMessage): Boolean { Log.d("MyApplication", "${message.message()} -- From line " + "${message.lineNumber()} of ${message.sourceId()}") return true } }
Java
WebView myWebView = findViewById(R.id.webview); myWebView.setWebChromeClient(new WebChromeClient() { @Override public boolean onConsoleMessage(ConsoleMessage consoleMessage) { Log.d("MyApplication", consoleMessage.message() + " -- From line " + consoleMessage.lineNumber() + " of " + consoleMessage.sourceId()); return true; } });
ConsoleMessage
还包含
MessageLevel
对象
来指明传送的控制台消息的类型。您可以使用
消息级别
messageLevel()
至
确定消息的严重性,然后使用适当的
Log
方法或采取其他适当措施。
无论您使用的是
onConsoleMessage(String, int, String)
或
onConsoleMessage(ConsoleMessage)
,
当您在网页中执行控制台方法时,Android 会调用
相应onConsoleMessage()
方法,以便您报告错误。例如,对于上面的示例代码,
系统输出 Logcat 消息,如下所示:
Hello World -- From line 82 of http://www.example.com/hello.html
以下是与调试相关的其他资源:
测试实验性 Web 功能
与 Google Chrome 的 chrome://flags
页面类似,您也可以测试实验性功能
WebView
中的 Web 功能。
为此,请按以下步骤操作:
安装任一
WebView
预发布版 渠道 (Beta 版、开发者版或 Canary 版){: .external}。改用
WebView
渠道 发布到测试设备上的预发布版。点击 WebView DevTools 启动器:
图 1. 表示已安装应用的 WebView 开发者工具图标 设备。在开发者工具中,点击 Flags 并搜索任何实验性功能 来启用或停用此更改适用于以下实例上的所有
WebView
个实例: 。停止并重启您的应用,以便开始使用新功能进行测试。
如需详细了解如何切换标志,请参阅 WebView
开发者工具
文档。