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
WebView
canal 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
WebView
no 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.