Kod JavaScript możesz debugować za pomocą interfejsów API JavaScript console
i wyświetlać komunikaty wyjściowe w Logcat. Jeśli znasz debugowanie stron internetowych za pomocą Firebuga lub Web Inspectora, prawdopodobnie wiesz, jak korzystać z console
(np. console.log()
). Interfejs WebKit na Androida obsługuje większość tych samych interfejsów API, więc podczas debugowania w WebView
możesz otrzymywać dzienniki ze swojej strony internetowej. W tej sekcji opisaliśmy, 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
. Aby komunikaty konsoli pojawiały się w Logcat, musisz podać obiekt WebChromeClient
, który implementuje metodę onConsoleMessage()
. Następnie zastosuj tag WebChromeClient
do WebView
za pomocą tagu setWebChromeClient()
.
Więcej informacji znajdziesz w dokumentacji Webview
.
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; } });
Obiekt ConsoleMessage
zawiera też obiekt MessageLevel
, który wskazuje typ dostarczanego komunikatu w konsoli. Możesz wysłać zapytanie o poziom wiadomości za pomocą parametru messageLevel()
, aby określić jej wagę, a następnie użyć odpowiedniej metody Log
lub podjąć inne odpowiednie działania.
Gdy na stronie internetowej wykonasz metodę konsoli (onConsoleMessage(String, int, String)
lub onConsoleMessage(ConsoleMessage)
), Android wywoła odpowiednią metodę onConsoleMessage()
, aby umożliwić zgłoszenie błędu. Na przykład w przypadku kodu z powyższego przykładu zostanie wydrukowany komunikat w Logcat, który wygląda tak:
Hello World -- From line 82 of http://www.example.com/hello.html
Oto dodatkowe materiały dotyczące debugowania:
Testowanie eksperymentalnych funkcji internetowych
Podobnie jak na stronie chrome://flags
w Google Chrome, możesz też testować eksperymentalne funkcje internetowe na stronie WebView
.
Aby to zrobić:
Zainstaluj jeden z
WebView
kanałów wersji wstępnych (beta, deweloperskiej lub Canary).{: .external}Przełącz kanał
WebView
na urządzeniu testowym na zainstalowany kanał przedpremierowy.Kliknij menu Narzędzia dla deweloperów WebView:
W Narzędziach deweloperskich kliknij Flagi i poszukaj funkcji eksperymentalnych, które chcesz włączyć lub wyłączyć. Zmiana dotyczy 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 dokumentacji WebView
Narzędzi dla deweloperów.