Eseguire il debug delle app web

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

Utilizzare le API della console in WebView

Le API della console sono supportate anche durante il debug in WebView. Devi fornire un WebChromeClient che implementi il metodo onConsoleMessage() affinché i messaggi della console vengano visualizzati in Logcat. Poi, applica WebChromeClient a WebView con setWebChromeClient(). Per saperne di più, consulta la documentazione relativa a WebView.

L'esempio seguente mostra come utilizzare le API della 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 che viene 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 utilizzi onConsoleMessage(String, int, String) o onConsoleMessage(ConsoleMessage), quando esegui un metodo della console nella tua pagina web, Android chiama il metodo onConsoleMessage() appropriato in modo da poter segnalare l'errore. Ad esempio, con il codice di esempio, 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

Analogamente alla 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 di pre-release (beta, dev o canary){:.external}.

  2. Passa al canale WebView sul dispositivo di test al canale pre-release installato.

  3. Fai clic sul launcher WebView DevTools.

    Icona di avvio di WebView DevTools.
    Figura 1. Icona di WebView DevTools per l'app installata su un dispositivo.
  4. In DevTools, fai clic sulla voce Flag e cerca le funzionalità sperimentali che vuoi attivare o disattivare. La modifica viene applicata a tutte le istanze di WebView sul dispositivo.

  5. Interrompi e riavvia l'app per iniziare a eseguire test con le nuove funzionalità.

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