Fehler in Web-Apps beheben

Sie können JavaScript-Fehler mit den console JavaScript APIs beheben und die Ausgabemeldungen in Logcat. Wenn Sie mit dem Debugging von Webseiten Firebug oder Web Inspector verwenden, sind Sie wahrscheinlich mit der Verwendung von console (z. B. console.log()). Das WebKit-Framework von Android unterstützt die meisten APIs, sodass Sie beim Debugging in Ihrem WebView In diesem Thema wird beschrieben, wie Sie die APIs der Konsole für das Debugging.

Konsolen-APIs in WebView verwenden

Die Konsolen-APIs werden auch für die Fehlerbehebung in WebView unterstützt. Du musst eine WebChromeClient mit die onConsoleMessage() -Methode, damit Konsolenmeldungen in Logcat angezeigt werden. Wenden Sie dann WebChromeClient auf WebView mit setWebChromeClient() Weitere Informationen findest du in der Webview. Dokumentation.

Das folgende Beispiel zeigt, wie Console-APIs in WebView verwendet werden:

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;
    }
});

Das ConsoleMessage enthält auch ein MessageLevel-Objekt um den Typ der zugestellten Konsolennachricht anzugeben. Sie können die Nachrichtenebene mit messageLevel() bis den Schweregrad der Meldung zu ermitteln und Log aus oder führen Sie andere geeignete Aktionen aus.

Unabhängig davon, ob Sie onConsoleMessage(String, int, String) oder onConsoleMessage(ConsoleMessage), Wenn Sie eine Konsolenmethode auf Ihrer Webseite ausführen, ruft Android die passend onConsoleMessage() , damit Sie den Fehler melden können. Bei dem Beispielcode oben wird z. B. ein Die Logcat-Nachricht wird folgendermaßen ausgegeben:

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

Im Folgenden finden Sie zusätzliche Ressourcen zum Debugging:

Experimentelle Webfunktionen testen

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

Gehen Sie dazu so vor:

  1. Eine der Vorabveröffentlichungen von WebView installieren Kanäle (Beta, Entwickler oder Canary){: .external}.

  2. WebView wechseln Kanal auf Ihrem Testgerät in die installierte Release-Version.

  3. Klicken Sie auf den Launcher WebView DevTools:


    Abbildung 1: WebView-Entwicklertools-Symbol für App, die auf einem .

  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 in auf dem Gerät.

  5. Beende deine App und starte sie neu, um sie mit den neuen Funktionen zu testen.

Weitere Informationen zum Wechseln von Flags findest du in den WebView-Entwicklertools Dokumentation.