Déboguer des applications Web

Vous pouvez déboguer votre code JavaScript à l'aide des API JavaScript console et afficher les messages de sortie dans Logcat. Si vous êtes familier avec le débogage de pages Web avec Firebug ou Web Inspector, vous savez probablement utiliser console. (par exemple, console.log()). Le framework WebKit d'Android prend en charge la plupart Vous pouvez ainsi recevoir les journaux de votre page Web lors du débogage dans WebView Cet article 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 prises en charge lors du débogage dans WebView. Vous devez fournissez une WebChromeClient qui implémente la onConsoleMessage() permettant aux messages de la console d'apparaître dans Logcat. Ensuite, appliquez la méthode WebChromeClient à votre WebView avec setWebChromeClient() Pour en savoir plus, consultez le Webview dans la documentation Google Cloud.

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

Le ConsoleMessage inclut également un Objet MessageLevel pour indiquer le type de message de console distribué. Vous pouvez interroger au niveau du message avec messageLevel() jusqu'à déterminer la gravité du message, utilisez la méthode Log ou prendre les 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é afin de pouvoir signaler l'erreur. Dans l'exemple de code ci-dessus, Le message Logcat s'affiche, semblable à celui-ci:

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

Voici des ressources supplémentaires liées au débogage:

Tester des fonctionnalités Web expérimentales

Comme pour la page chrome://flags de Google Chrome, vous pouvez tester des Web de WebView.

Pour ce faire, procédez comme suit:

  1. Installer l'une des versions préliminaires d'WebView canaux (bêta, dev ou Canary){: .external}.

  2. Changez de WebView canal sur votre appareil de test vers la version préliminaire installée.

  3. Cliquez sur le lanceur d'applications WebView DevTools:


    Figure 1 : Icône Outils de développement WebView d'une application installée sur un appareil.

  4. Dans les outils de développement, cliquez sur Options et recherchez toutes les fonctionnalités expérimentales. que vous souhaitez activer ou désactiver. La modification s'applique à toutes les instances WebView sur l'appareil.

  5. Arrêtez et redémarrez votre application pour commencer à tester les nouvelles fonctionnalités.

Pour en savoir plus sur l'activation/la désactivation des indicateurs, consultez la page Outils de développement WebView documentation.