您可以使用 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
中測試實驗性網頁功能。
步驟如下:
安裝其中一個
WebView
預先發布版 (Beta 版、開發人員版或 Canary 版){:.external}。在測試裝置上將
WebView
頻道切換為已安裝的預先發布頻道。按一下「WebView 開發人員工具」啟動器。
圖 1:裝置上安裝的應用程式的 WebView 開發人員工具圖示。 在開發人員工具中,按一下「Flags」項目,然後搜尋要啟用或停用的任何實驗功能。這項變更會套用至裝置上的所有
WebView
例項。停止並重新啟動應用程式,即可開始測試新功能。
如要進一步瞭解如何切換標記,請參閱 WebView
開發人員工具說明文件。