É possível depurar o JavaScript usando as APIs JavaScript console
e conferir
as mensagens de saída no Logcat. Se você tem familiaridade com a depuração de páginas da Web com
o Systrace ou o Web Inspector, provavelmente já conhece o uso de console
(como console.log()
). O framework WebKit do Android é compatível com a maioria das mesmas
APIs. Portanto, você pode receber registros da página da Web durante a depuração em
WebView
. Este tópico descreve como usar
as APIs do Console para depuração.
Usar APIs do console na WebView
As APIs do console também têm suporte 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 abaixo 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. É possível consultar o
nível da mensagem com
messageLevel()
para
determinar a gravidade da mensagem e, em seguida, usar o método
Log
apropriado ou tomar outras ações 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 chamará o
método onConsoleMessage()
adequado para que você possa relatar o erro. Por exemplo, com o código de exemplo acima, uma
mensagem do Logcat é mostrada desta forma:
Hello World -- From line 82 of http://www.example.com/hello.html
Confira abaixo 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 isso, siga estas etapas:
Instale um dos canais de pré-lançamento do
WebView
(Beta, dev ou canário){: .external}.Mude o canal
WebView
no dispositivo de teste para o canal de pré-lançamento instalado.Clique na tela de início do WebView DevTools:
No DevTools, clique em Flags e procure recursos experimentais que você quer ativar ou desativar. A mudança se aplica a todas as instâncias do
WebView
no dispositivo.Interrompa e reinicie o app para começar a testar com os novos recursos.
Para saber mais sobre como ativar ou desativar flags, consulte a documentação
do WebView
DevTools.