對網頁應用程式偵錯

您可以使用 console JavaScript API 偵錯 JavaScript,並在 Logcat 中查看輸出訊息。如果您熟悉使用 Firebug 或 Web Inspector 偵錯網頁,那麼您可能也熟悉使用 console (例如 console.log())。Android 的 WebKit 架構支援大部分相同的 API,因此您可以在 WebView 中偵錯時,從網頁接收記錄檔。本節說明如何使用主控台 API 進行偵錯。

在 WebView 中使用控制台 API

WebView 中進行偵錯時,系統也支援控制台 API。您必須提供實作 onConsoleMessage() 方法的 WebChromeClient,才能讓控制台訊息顯示在 Logcat 中。接著,使用 setWebChromeClient()WebChromeClient 套用至 WebView。詳情請參閱 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

以下是與偵錯相關的其他資源:

測試實驗性網頁功能

與 Google Chrome 的 chrome://flags 頁面類似,您也可以在 WebView 中測試實驗性的網頁功能。

如要這樣做,請按照下列步驟操作:

  1. 安裝其中一個 WebView 預先發布版通道 (Beta 版、開發人員版或 Canary 版){: .external}。

  2. 將測試裝置上的 WebView 頻道切換為已安裝的預先發布頻道。

  3. 按一下 WebView 開發人員工具啟動器:


    圖1. 裝置上已安裝應用程式的 WebView 開發人員工具圖示。

  4. 在開發人員工具中,按一下「標記」,然後搜尋要啟用或停用的任何實驗功能。這項變更會套用至裝置上的所有 WebView 例項。

  5. 停止並重新啟動應用程式,即可開始測試新功能。

如要進一步瞭解如何切換標記,請參閱 WebView 開發人員工具說明文件