调试 Web 应用

您可以使用 console JavaScript API 调试 JavaScript,并查看 在 Logcat 中查看输出消息。如果您熟悉如何调试网页 Firebug 或 Web Inspector,那么你可能对使用 console 比较熟悉 (例如 console.log())。Android 的 WebKit 框架支持大部分 API,这样您就可以在 WebView。本主题介绍了如何使用 用于调试的控制台 API

在 WebView 中使用控制台 API

WebView 中调试时也支持控制台 API。您必须 提供 WebChromeClient,用于实现 该 onConsoleMessage() 方法,在 Logcat 中显示控制台消息。然后,应用 通过以下账号将 WebChromeClient 转入您的 WebViewsetWebChromeClient()。 如需了解详情,请参阅 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 功能。

为此,请按以下步骤操作:

  1. 安装任一 WebView 预发布版 渠道 (Beta 版、开发者版或 Canary 版){: .external}。

  2. 改用WebView 渠道 发布到测试设备上的预发布版。

  3. 点击 WebView DevTools 启动器:


    图 1. 表示已安装应用的 WebView 开发者工具图标 设备。

  4. 在开发者工具中,点击 Flags 并搜索任何实验性功能 来启用或停用此更改适用于以下实例上的所有 WebView 个实例: 。

  5. 停止并重启您的应用,以便开始使用新功能进行测试。

如需详细了解如何切换标志,请参阅 WebView 开发者工具 文档