Android Dépannage de WebView en imprimant des messages de console ou par le débogage à distance


Exemple

Impression des messages de la console Webview dans logcat

Pour gérer console messages de console à partir de la page Web, vous pouvez remplacer onConsoleMessage dans WebChromeClient :

final class ChromeClient extends WebChromeClient {
    @Override
    public boolean onConsoleMessage(ConsoleMessage msg) {
        Log.d(
            "WebView", 
            String.format("%s %s:%d", msg.message(), msg.lineNumber(), msg.sourceId())
        );
        return true;
    }
}

Et définissez-le dans votre activité ou fragment:

webView.setWebChromeClient(new ChromeClient());

Donc, cet exemple de page:

<html>
<head>
    <script type="text/javascript">
        console.log('test message');
    </script>
</head>
<body>
</body>
</html>

écrira log 'test message' à logcat:

WebView: exemple de message de test.html: 4

console.info() , console.warn() et console.error() sont également supportés par chrome-client.

Débogage à distance des appareils Android avec Chrome

Vous pouvez déboguer une application basée sur Webview à partir de Google Chrome.

Activer le débogage USB sur votre appareil Android

Sur votre appareil Android, ouvrez Paramètres, recherchez la section Options de développeur et activez le débogage USB.

Connectez et découvrez votre appareil Android

Ouvrir la page en chrome Page suivante: chrome: // inspect / # devices

Dans la boîte de dialogue Inspecter les périphériques, sélectionnez votre appareil et appuyez sur inspecter . Une nouvelle instance de Chrome DevTools s'ouvre sur votre machine de développement.

Des instructions et une description plus détaillées de DevTools sont disponibles sur developers.google.com.