您可以使用 console
JavaScript API 對 JavaScript 進行偵錯,並在 Logcat 中查看輸出訊息。如果您熟悉使用 Firebug 或 Web 檢查器對網頁進行偵錯,那麼您可能會熟悉如何使用 console
(例如 console.log()
)。Android 的 WebKit 架構支援大多數相同的 API,因此您可以在 WebView
偵錯時接收網頁記錄。本主題說明如何使用主控台 API 進行偵錯。
在 WebView 中使用控制台 API
在 WebView
中偵錯時,系統也會支援 控制台 API。您必須提供 WebChromeClient
來實作 onConsoleMessage()
方法,主控台訊息才會顯示在 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 版、開發版或初期測試版本){: .external}。在測試裝置上將
WebView
版本切換至已安裝的預先發布版本。按一下「WebView 開發人員工具」啟動器:
在開發人員工具中按一下「旗標」,然後搜尋要啟用或停用的實驗功能。這項變更會套用至裝置上的所有
WebView
執行個體。停止並重新啟動應用程式,以便開始使用新功能進行測試。
如要進一步瞭解如何切換旗標,請參閱 WebView
開發人員工具說明文件。