Debugowanie aplikacji internetowych

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ć:

  1. Zainstaluj jedną z wersji przedpremierowej WebView kanały (beta, deweloperska lub do wczesnych testów){: .external}.

  2. Przełącz urządzenie WebView kanał na urządzeniu testowym do zainstalowanego kanału wersji przedpremierowej.

  3. Kliknij program uruchamiający Narzędzia deweloperskie WebView:


    () Rysunek 1. Ikona Narzędzi deweloperskich WebView dla aplikacji zainstalowanej na urządzenia.

  4. 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.

  5. 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.