É possível depurar o JavaScript usando as APIs JavaScript console
e conferir
as mensagens de saída no Logcat. Se você já sabe como depurar páginas da Web com
o Firebug ou o Web Inspector, provavelmente já sabe usar console
(como console.log()
). O framework WebKit do Android oferece suporte à maioria das mesmas
APIs, para que você possa receber registros da sua página da Web ao depurar no
WebView
. Esta seção descreve 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
. É necessário
fornecer um
WebChromeClient
que implemente
o método
onConsoleMessage()
para que as mensagens do console apareçam no Logcat. Em seguida, aplique o
WebChromeClient
à WebView
com
setWebChromeClient()
.
Para mais informações, consulte a documentação
Webview
.
O exemplo a seguir mostra como usar as APIs do 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)
,
ao executar um método de console na sua 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 acima, uma
mensagem do Logcat é impressa, como esta:
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
experimentais da Web em WebView
.
Para fazer isso, siga estas etapas:
Instale um dos canais de pré-lançamento
WebView
(beta, dev ou canário){: .external}.Mudar o canal
WebView
no dispositivo de teste para o canal de pré-lançamento instalado.Clique no iniciador do WebView DevTools:
No DevTools, clique em Flags e procure os recursos experimentais que você quer ativar ou desativar. A mudança se aplica a todas as instâncias de
WebView
no dispositivo.Pare e reinicie o app para começar a testar com os novos recursos.
Para mais informações sobre como ativar flags, consulte a documentação
WebView
do DevTools.