Możesz debugować JavaScript za pomocą console
API i widoku
komunikatów wyjściowych w Logcat. Jeśli wiesz, jak debugować strony internetowe,
Firebuga lub Inspektora sieci, to pewnie wiesz, jak używać narzędzia console
.
(np. console.log()
). Platforma WebKit Androida obsługuje większość tych technologii
API, dzięki czemu można odbierać logi ze strony internetowej podczas debugowania
WebView
. W tym temacie opisujemy, jak używać
interfejsów API konsoli do debugowania.
Używanie interfejsów API konsoli w WebView
Interfejsy API konsoli są również obsługiwane podczas debugowania w interfejsie WebView
. Musisz
podaj
WebChromeClient
, która stosuje
onConsoleMessage()
metody wyświetlania komunikatów konsoli w logcat. Następnie zastosuj
WebChromeClient
na urządzenie WebView
z
setWebChromeClient()
.
Więcej informacji: Webview
dokumentacji.
Ten 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; } });
ConsoleMessage
zawiera też
MessageLevel
obiekt
, aby wskazać typ dostarczanego komunikatu w konsoli. Możesz przesłać zapytanie
poziom wiadomości z
messageLevel()
do
określić wagę wiadomości, a następnie użyć odpowiednich
Log
lub podejmij inne odpowiednie działania.
Niezależnie od tego, czy używasz
onConsoleMessage(String, int, String)
lub
onConsoleMessage(ConsoleMessage)
,
gdy wykonasz na swojej stronie internetowej metodę za pomocą konsoli, Android wywołuje metodę
odpowiednie onConsoleMessage()
, aby można było zgłosić błąd. Na przykład w przypadku powyższego przykładowego kodu
Zostanie wyświetlony komunikat Logcat, który będzie wyglądał tak:
Hello World -- From line 82 of http://www.example.com/hello.html
Poniżej znajdziesz dodatkowe materiały związane z debugowaniem:
Testowanie eksperymentalnych funkcji internetowych
Podobnie jak w przypadku strony chrome://flags
w Google Chrome możesz też testować funkcje eksperymentalne
funkcje internetowe w usłudze WebView
.
Aby to zrobić:
Zainstaluj jedną z wersji przedpremierowej
WebView
kanały (beta, deweloperska lub do wczesnych testów){: .external}.Przełącz urządzenie
WebView
kanał na urządzeniu testowym do zainstalowanego kanału wersji przedpremierowej.Kliknij program uruchamiający Narzędzia deweloperskie WebView:
() Rysunek 1. Ikona Narzędzi deweloperskich WebView dla aplikacji zainstalowanej na urządzenia.
W Narzędziach deweloperskich kliknij Flagi i wyszukaj eksperymentalne funkcje które chcesz włączyć lub wyłączyć. Zmiana ma zastosowanie do wszystkich
WebView
instancji urządzenia.Zatrzymaj aplikację i uruchom ją ponownie, aby rozpocząć testowanie z nowymi funkcjami.
Więcej informacji o przełączaniu flag znajdziesz w Narzędziach deweloperskich WebView
.
dokumentacji.