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:
Installa uno dei
WebView
canali pre-release (beta, dev o canary){: .external}.Sposta il
WebView
canale sul dispositivo di test sul canale pre-release installato.Fai clic sul programma di avvio di WebView DevTools:
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.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.