JavaScript możesz debugować za pomocą interfejsów API JavaScript console
i wyświetlać komunikaty wyjściowe w narzędziu Logcat. Jeśli debugujesz strony internetowe przy użyciu Firebuga lub Inspektora sieci, zapewne znasz używanie console
(np. console.log()
). Platforma WebKit Androida obsługuje większość tych samych interfejsów API, dzięki czemu podczas debugowania możesz otrzymywać dzienniki ze swojej strony internetowej w WebView
. W tym temacie opisujemy sposób używania interfejsów API konsoli do debugowania.
Używanie interfejsów API konsoli w WebView
Interfejsy API konsoli są też obsługiwane podczas debugowania w WebView
. Aby komunikaty konsoli wyświetlały się w Logcat, musisz udostępnić kod WebChromeClient
implementujący metodę onConsoleMessage()
. Następnie zastosuj WebChromeClient
do WebView
za pomocą setWebChromeClient()
.
Więcej informacji znajdziesz w dokumentacji Webview
.
Ten przykład pokazuje, jak korzystać z interfejsów API konsoli w WebView
:
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
zawiera też obiekt MessageLevel
wskazujący typ dostarczanej wiadomości konsoli. Możesz wysyłać zapytania na poziomie wiadomości za pomocą narzędzia messageLevel()
, aby określić wagę wiadomości, a następnie użyć odpowiedniej metody Log
lub podjąć inne odpowiednie działania.
Niezależnie od tego, czy używasz metody onConsoleMessage(String, int, String)
czy onConsoleMessage(ConsoleMessage)
, podczas wykonywania na stronie internetowej metody konsoli, Android wywołuje odpowiednią metodę onConsoleMessage()
, aby umożliwić Ci zgłoszenie błędu. W podanym wyżej przykładowym kodzie
wyświetlono np. komunikat Logcat, który wygląda tak:
Hello World -- From line 82 of http://www.example.com/hello.html
Tutaj znajdziesz dodatkowe materiały na temat debugowania:
Testowanie eksperymentalnych funkcji internetowych
Podobnie jak w przypadku strony chrome://flags
w Google Chrome w usłudze WebView
możesz także testować eksperymentalne funkcje internetowe.
Aby to zrobić:
Zainstaluj jeden z kanałów przedpremierowych (
WebView
) (beta, deweloperski lub do wczesnych testów){: .external}.Przełącz kanał
WebView
na urządzeniu testowym na zainstalowany kanał wersji przedpremierowej.Kliknij menu WebView DevTools:
W Narzędziach deweloperskich kliknij Flagi i wyszukaj funkcje eksperymentalne, które chcesz włączyć lub wyłączyć. Zmiana zostanie zastosowana do wszystkich instancji
WebView
na urządzeniu.Zatrzymaj ją i uruchom ponownie, aby rozpocząć testowanie nowych funkcji.
Więcej informacji o przełączaniu flag znajdziesz w dokumentacji Narzędzi deweloperskich WebView
.