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:
Installa uno dei
WebView
canali di pre-release (beta, dev o canary){:.external}.Passa al canale
WebView
sul dispositivo di test al canale pre-release installato.Fai clic sul launcher WebView DevTools.
Figura 1. Icona di WebView DevTools per l'app installata su un dispositivo. 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.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