Vous pouvez déboguer votre code JavaScript à l'aide des API JavaScript console
et afficher les messages de sortie dans Logcat. Si vous avez l'habitude de déboguer des pages Web avec Firebug ou Web Inspector, vous connaissez probablement l'utilisation de console
(comme console.log()
). Le framework WebKit d'Android est compatible avec la plupart des mêmes API. Vous pouvez donc recevoir des journaux de votre page Web lorsque vous effectuez un débogage dans votre WebView
. Cette section explique comment utiliser les API de la console pour le débogage.
Utiliser les API de la console dans WebView
Les API de la console sont également compatibles lors du débogage dans WebView
. Vous devez fournir un WebChromeClient
qui implémente la méthode onConsoleMessage()
pour que les messages de la console s'affichent dans Logcat.
Appliquez ensuite le WebChromeClient
à votre WebView
avec setWebChromeClient()
. Pour en savoir plus, consultez la documentation WebView
.
L'exemple suivant montre comment utiliser les API de la console dans 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
inclut également un objet MessageLevel
pour indiquer le type de message de console envoyé. Vous pouvez interroger le niveau du message avec messageLevel()
pour déterminer la gravité du message, puis utiliser la méthode Log
appropriée ou prendre d'autres mesures appropriées.
Que vous utilisiez onConsoleMessage(String, int, String)
ou onConsoleMessage(ConsoleMessage)
, lorsque vous exécutez une méthode de console sur votre page Web, Android appelle la méthode onConsoleMessage()
appropriée pour que vous puissiez signaler l'erreur. Par exemple, avec l'exemple de code, un message Logcat s'affiche et ressemble à ceci :
Hello World -- From line 82 of http://www.example.com/hello.html
Voici d'autres ressources liées au débogage :
Tester des fonctionnalités Web expérimentales
Comme pour la page chrome://flags
de Google Chrome, vous pouvez également tester des fonctionnalités Web expérimentales dans WebView
.
Pour ce faire, procédez comme suit :
Installez l'une des versions préliminaires de
WebView
(bêta, développement ou Canary).{.external}Passez de la version
WebView
sur votre appareil de test à la version préliminaire installée.Cliquez sur le lanceur d'outils de développement WebView.
Image 1. Icône des outils pour les développeurs WebView pour une application installée sur un appareil. Dans les outils de développement, cliquez sur l'élément Indicateurs et recherchez les fonctionnalités expérimentales que vous souhaitez activer ou désactiver. La modification s'applique à toutes les instances
WebView
sur l'appareil.Arrêtez et redémarrez votre application pour commencer à tester les nouvelles fonctionnalités.
Pour en savoir plus sur l'activation et la désactivation des indicateurs, consultez la documentation sur les outils de développement WebView
.