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 di pagine web con
Firebug o l'inspector web, probabilmente sai già come usare console
(ad esempio console.log()
). Il framework WebKit di Android supporta la maggior parte delle stesse
API, quindi puoi ricevere i log dalla tua pagina web durante il debug nel tuo
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 implementi il metodo onConsoleMessage()
per visualizzare i messaggi della console in Logcat. Dopodiché applica WebChromeClient
a WebView
con setWebChromeClient()
.
Per ulteriori informazioni, consulta la documentazione 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 da consegnare. Puoi eseguire query a livello di messaggio con messageLevel()
per determinarne la gravità, quindi utilizzare il metodo Log
appropriato o eseguire 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 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 le risorse aggiuntive relative al debug:
Testare le funzionalità web sperimentali
Come per la pagina chrome://flags
di Google Chrome, puoi anche testare le funzionalità web sperimentali in WebView
.
Per eseguire questa operazione, procedi nel seguente modo:
Installa uno dei
WebView
canali di pre-release (beta, dev o canary){: .external}.Cambia il canale
WebView
sul dispositivo di test al canale di pre-release installato.Fai clic sull'Avvio app WebView DevTools:
In DevTools, fai clic su Flag e cerca le funzionalità sperimentali che vuoi attivare o disattivare. La modifica si applica a tutte le istanze
WebView
sul dispositivo.Interrompi e riavvia l'app per iniziare i test con le nuove funzionalità.
Per ulteriori informazioni sull'attivazione/disattivazione dei flag, consulta la documentazione di WebView
DevTools.