Kod JavaScript możesz debugować za pomocą console
interfejsów JavaScript API, a komunikaty wyjściowe wyświetlać w narzędziu Logcat. Jeśli znasz debugowanie stron internetowych za pomocą Firebuga lub Web Inspectora, prawdopodobnie wiesz, jak używać console
(np. console.log()
). Platforma WebKit na Androidzie obsługuje większość tych samych interfejsów API, więc podczas debugowania w WebView
możesz otrzymywać logi ze swojej strony internetowej. W tej sekcji opisujemy, jak używać interfejsów API konsoli do debugowania.
Korzystanie z interfejsów API konsoli w WebView
Interfejsy API konsoli są też obsługiwane podczas debugowania w WebView
. Musisz podać WebChromeClient
, który implementuje metodę onConsoleMessage()
, aby komunikaty konsoli pojawiały się w Logcat.
Następnie nałóż WebChromeClient
na WebView
za pomocą setWebChromeClient()
. Więcej informacji znajdziesz w WebView
dokumentacji.
Poniższy przykład pokazuje, jak używać 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;
}
});
Obiekt ConsoleMessage
zawiera też obiekt MessageLevel
, który wskazuje typ dostarczanego komunikatu konsoli. Możesz wysyłać zapytania o poziom wiadomości za pomocą parametru messageLevel()
, aby określić ważność wiadomości, a następnie użyć odpowiedniej metody Log
lub podjąć inne odpowiednie działania.
Niezależnie od tego, czy używasz onConsoleMessage(String, int, String)
czy onConsoleMessage(ConsoleMessage)
, gdy wykonujesz metodę konsoli na stronie internetowej, Android wywołuje odpowiednią metodę onConsoleMessage()
, dzięki czemu możesz zgłosić błąd. Na przykład w przypadku przykładowego kodu wyświetlany jest komunikat Logcat, który wygląda tak:
Hello World -- From line 82 of http://www.example.com/hello.html
Oto dodatkowe materiały związane z debugowaniem:
Testowanie eksperymentalnych funkcji internetowych
Podobnie jak na stronie chrome://flags
w Google Chrome, możesz też testować eksperymentalne funkcje internetowe w WebView
.
Aby to zrobić, wykonaj te czynności:
Zainstaluj jeden z
WebView
kanałów wersji przedpremierowych (beta, deweloperska lub Canary){:.external}.Przełącz
WebView
kanał na urządzeniu testowym na zainstalowany kanał wersji przedpremierowej.Kliknij ikonę Narzędzia deweloperskie WebView.
Rysunek 1. Ikona Narzędzi deweloperskich WebView dla aplikacji zainstalowanej na urządzeniu. W Narzędziach deweloperskich kliknij Flagi i wyszukaj dowolne eksperymentalne funkcje, które chcesz włączyć lub wyłączyć. Zmiana zostanie zastosowana do wszystkich wystąpień
WebView
na urządzeniu.Zatrzymaj i ponownie uruchom aplikację, aby rozpocząć testowanie nowych funkcji.
Więcej informacji o przełączaniu flag znajdziesz w WebView
dokumentacji Narzędzi deweloperskich.