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:
Installa una delle pre-release di
WebView
canali (beta, dev o canary){: .external}.Cambia
WebView
canale sul dispositivo di test sul canale di pre-release installato.Fai clic sull'Avvio app WebView DevTools:
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.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.