Fehler in Web-Apps beheben

Sie können Ihr JavaScript mit den console JavaScript APIs debuggen und die Ausgabemeldungen in Logcat ansehen. Wenn Sie mit dem Debuggen von Webseiten mit Firebug oder Web Inspector vertraut sind, kennen Sie wahrscheinlich auch console (z. B. console.log()). Das WebKit-Framework von Android unterstützt die meisten derselben APIs. Sie können also Protokolle von Ihrer Webseite erhalten, wenn Sie in WebView debuggen. In diesem Abschnitt wird beschrieben, wie Sie die Console APIs zum Debuggen verwenden.

Console APIs in WebView verwenden

Die Console APIs werden auch beim Debuggen in WebView unterstützt. Sie müssen eine WebChromeClient angeben, die die Methode onConsoleMessage() implementiert, damit Konsolenmeldungen in Logcat angezeigt werden. Wenden Sie dann die WebChromeClient mit setWebChromeClient() auf Ihre WebView an. Weitere Informationen finden Sie in der Dokumentation zu Webview.

Das folgende Beispiel zeigt, wie Sie Console APIs in WebView verwenden:

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 enthält außerdem ein MessageLevel-Objekt, das den Typ der gesendeten Konsolennachricht angibt. Sie können die Nachrichtenebene mit messageLevel() abfragen, um die Schwere der Nachricht zu bestimmen, und dann die entsprechende Log-Methode verwenden oder andere geeignete Maßnahmen ergreifen.

Unabhängig davon, ob Sie onConsoleMessage(String, int, String) oder onConsoleMessage(ConsoleMessage) verwenden, ruft Android beim Ausführen einer Console-Methode auf Ihrer Webseite die entsprechende onConsoleMessage()-Methode auf, damit Sie den Fehler melden können. Im Beispielcode oben wird beispielsweise eine Logcat-Nachricht ausgegeben, die so aussieht:

Hello World -- From line 82 of http://www.example.com/hello.html

Weitere Informationen zur Fehlerbehebung finden Sie hier:

Experimentelle Webfunktionen testen

Ähnlich wie auf der Seite chrome://flags in Google Chrome können Sie auch in WebView experimentelle Webfunktionen testen.

Gehen Sie dazu so vor:

  1. Installieren Sie einen der WebViewPre-Release-Kanäle (Beta, Dev oder Canary){: .external}.

  2. Stellen Sie den WebView-Kanal auf Ihrem Testgerät auf den installierten Pre-Release-Kanal um.

  3. Klicken Sie auf den Launcher für die WebView DevTools:


    Abbildung 1: Symbol für WebView DevTools für eine App, die auf einem Gerät installiert ist.

  4. Klicken Sie in den Entwicklertools auf Flags und suchen Sie nach experimentellen Funktionen, die Sie aktivieren oder deaktivieren möchten. Die Änderung gilt für alle WebView-Instanzen auf dem Gerät.

  5. Beenden Sie die App und starten Sie sie neu, um die neuen Funktionen zu testen.

Weitere Informationen zum Aktivieren und Deaktivieren von Flags finden Sie in der WebView-DevTools-Dokumentation.