Você pode depurar o JavaScript usando as APIs console JavaScript e ver as mensagens de saída no Logcat. Se você já depurou páginas da Web com
Firebug ou Web Inspector, provavelmente já usou console
(como console.log()). O framework WebKit do Android é compatível com a maioria das mesmas
APIs. Assim, você pode receber registros da sua página da Web ao depurar no
WebView. Nesta seção, descrevemos como usar as APIs Console para
depuração.
Usar APIs Console na WebView
As APIs Console também são compatíveis durante a depuração em WebView. Você precisa
fornecer um WebChromeClient que implemente o
método onConsoleMessage() para que as mensagens do console apareçam no Logcat.
Em seguida, aplique WebChromeClient à WebView com
setWebChromeClient(). Para mais informações, consulte a documentação WebView.
O exemplo a seguir mostra como usar APIs de console em 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;
}
});
O ConsoleMessage também inclui um objeto MessageLevel para indicar o tipo de mensagem do console que está sendo entregue. Você pode consultar o
nível da mensagem com messageLevel() para determinar a gravidade dela. Depois disso, use o método Log apropriado ou tome outras medidas adequadas.
Se você estiver usando
onConsoleMessage(String, int, String) ou
onConsoleMessage(ConsoleMessage), quando executar um método de console na
página da Web, o Android vai chamar o método onConsoleMessage() adequado para
que você informe o erro. Por exemplo, com o código de exemplo, uma mensagem de Logcat
é impressa e tem esta aparência:
Hello World -- From line 82 of http://www.example.com/hello.html
Confira outros recursos relacionados à depuração:
Testar recursos experimentais da Web
Assim como na página chrome://flags do Google Chrome, você também pode testar recursos
da Web experimentais em WebView.
Para fazer isso, siga estas etapas:
Instale um dos canais de pré-lançamento do
WebView(beta, dev ou canary){:.external}.Mude o
WebViewcanal no dispositivo de teste para o canal de pré-lançamento instalado.Clique no iniciador DevTools do WebView.
Figura 1. Ícone do WebView DevTools para um app instalado em um dispositivo. No DevTools, clique no item Flags e pesquise os recursos experimentais que você quer ativar ou desativar. A mudança se aplica a todas as instâncias de
WebViewno dispositivo.Pare e reinicie o app para começar a testar os novos recursos.
Para mais informações sobre como ativar/desativar flags, consulte a
documentação do WebView DevTools.