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 dimestichezza con il debug delle pagine web con Firebug o Web Inspector, allora probabilmente conosci già l'utilizzo di console (ad esempio console.log()). Il framework WebKit di Android supporta gran parte dei API, in modo da poter ricevere i log dalla pagina web durante il debug nel WebView Questo argomento descrive come utilizzare le API della console per il debug.

Usa le API della console in WebView

Le API della console sono supportate anche durante il debug in WebView. Devi fornire un WebChromeClient che implementa il onConsoleMessage() per visualizzare i messaggi della console in Logcat. Applica quindi il metodo WebChromeClient a WebView con setWebChromeClient() Per ulteriori informazioni, consulta la Webview documentazione.

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

Il ConsoleMessage include anche Oggetto MessageLevel per indicare il tipo di messaggio della console da consegnare. Puoi eseguire query a livello di messaggio con Da messageLevel() a determinare la gravità del messaggio, quindi utilizzare Log o intraprendere altre azioni appropriate.

Se utilizzi onConsoleMessage(String, int, String) o onConsoleMessage(ConsoleMessage), quando esegui un metodo della console nella tua pagina web, Android chiama onConsoleMessage() appropriato in modo da poter segnalare l'errore. Ad esempio, con il codice di esempio riportato sopra, Il messaggio di logcat viene stampato simile al seguente:

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

Di seguito sono riportate altre risorse relative al debug:

Prova le funzionalità web sperimentali

Come per la pagina chrome://flags di Google Chrome, puoi anche eseguire test funzionalità web in WebView.

Per farlo, segui questi passaggi:

  1. Installa una delle pre-release di WebView canali (beta, dev o canary){: .external}.

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

  3. Fai clic sull'Avvio app WebView DevTools:

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

  4. In DevTools, fai clic su Flag e cerca eventuali funzionalità sperimentali che desideri attivare o disattivare. La modifica si applica a tutte le WebView istanze su del dispositivo.

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

Per saperne di più sull'attivazione/disattivazione dei flag, consulta WebView DevTools documentazione.