Sie können JavaScript-Fehler mit den console
JavaScript APIs beheben und die Ausgabemeldungen in Logcat ansehen. Wenn Sie sich mit dem Debugging von Webseiten mit Firebug oder Web Inspector auskennen, sind Sie wahrscheinlich auch mit der Verwendung von console
(z. B. console.log()
) vertraut. Das WebKit-Framework von Android unterstützt die meisten derselben APIs, sodass Sie beim Debugging in WebView
Protokolle von Ihrer Webseite erhalten können. In diesem Thema wird beschrieben, wie Sie die Console-APIs für die Fehlerbehebung verwenden.
Console APIs in WebView verwenden
Die Konsolen-APIs werden auch beim Debugging in WebView
unterstützt. Sie müssen einen WebChromeClient
angeben, mit dem die Methode onConsoleMessage()
implementiert wird, damit Konsolennachrichten in Logcat angezeigt werden. Wenden Sie dann WebChromeClient
mit setWebChromeClient()
auf WebView
an.
Weitere Informationen finden Sie in der Dokumentation zu Webview
.
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; } });
Der ConsoleMessage
enthält auch ein MessageLevel
-Objekt, das den Typ der übermittelten Konsolennachricht angibt. Sie können die Nachrichtenebene mit messageLevel()
abfragen, um den Schweregrad der Nachricht zu ermitteln. Verwenden Sie dann die entsprechende Log
-Methode oder ergreifen Sie andere geeignete Maßnahmen.
Wenn Sie onConsoleMessage(String, int, String)
oder onConsoleMessage(ConsoleMessage)
verwenden, ruft Android beim Ausführen einer Konsolenmethode auf Ihrer Webseite die entsprechende onConsoleMessage()
-Methode auf, damit Sie den Fehler melden können. Mit dem Beispielcode oben wird beispielsweise eine Logcat-Nachricht ausgegeben, die so aussieht:
Hello World -- From line 82 of http://www.example.com/hello.html
Im Folgenden finden Sie zusätzliche Ressourcen zur Fehlerbehebung:
Experimentelle Webfunktionen testen
Ähnlich wie auf der chrome://flags
-Seite von Google Chrome können Sie auch experimentelle Webfunktionen in WebView
testen.
Gehen Sie dazu so vor:
Installieren Sie einen der
WebView
Vorabversionen (Beta, Dev oder Canary).Ändern Sie die Version
WebView
auf Ihrem Testgerät in die Version für die Vorabveröffentlichung.Klicken Sie auf den Launcher WebView DevTools:
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.Beende die App und starte sie neu, um die neuen Funktionen zu testen.
Weitere Informationen zum Wechseln der Flags finden Sie in der Dokumentation zu den WebView
-Entwicklertools.