Eseguire il debug delle app web

Puoi eseguire il debug del codice JavaScript utilizzando le API JavaScript console e visualizzare i messaggi di output in Logcat. Se hai dimestichezza con il debug delle pagine web con Firebug o Web Inspector, probabilmente conosci l'utilizzo di console (ad esempio console.log()). Il framework WebKit di Android supporta la maggior parte delle API, quindi puoi ricevere i log dalla tua pagina web durante il debug in WebView. Questa sezione descrive come utilizzare le API di console per il debug.

Utilizzare le API di console in WebView

Le API della console sono supportate anche durante il debug in WebView. Devi fornire un WebChromeClient che implementi il metodo onConsoleMessage() per visualizzare i messaggi della console in Logcat. Poi, applica il WebChromeClient al tuo WebView con setWebChromeClient(). Per ulteriori informazioni, consulta la documentazione di Webview.

Il seguente esempio mostra come utilizzare le API di console in 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 include anche un oggetto MessageLevel per indicare il tipo di messaggio della console inviato. Puoi eseguire query sul livello del messaggio con messageLevel() per determinare la gravità del messaggio, quindi utilizzare il metodo Log appropriato o intraprendere altre azioni appropriate.

Che tu stia utilizzando onConsoleMessage(String, int, String) o onConsoleMessage(ConsoleMessage), quando esegui un metodo della console nella tua pagina web, Android chiama il metodo onConsoleMessage() appropriato per consentirti di segnalare l'errore. Ad esempio, con il codice di esempio riportato sopra, viene stampato un messaggio Logcat simile al seguente:

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

Di seguito sono riportate altre risorse relative al debug:

Testare le funzionalità web sperimentali

Come nella pagina chrome://flags di Google Chrome, puoi anche testare le funzionalità web sperimentali in WebView.

Per farlo, segui questi passaggi:

  1. Installa uno dei WebView canali pre-release (beta, dev o canary){: .external}.

  2. Sposta il WebView canale sul dispositivo di test sul canale pre-release installato.

  3. Fai clic sul programma di avvio di WebView DevTools:


    Figura 1. Icona di WebView DevTools per l'app installata su un dispositivo.

  4. In DevTools, fai clic su Indicatori e cerca le funzionalità sperimentali che vuoi attivare o disattivare. La modifica si applica a tutte le istanze di WebView sul dispositivo.

  5. Interrompi e riavvia l'app per iniziare a testare le nuove funzionalità.

Per ulteriori informazioni sull'attivazione/disattivazione degli indicatori, consulta la WebView documentazione di DevTools.