É possível depurar seu JavaScript usando as APIs JavaScript console
e visualizar
as mensagens de saída no Logcat. Se você estiver familiarizado com a depuração de páginas da Web com
Firebug ou Web Inspector, então você provavelmente já sabe usar console
(como console.log()
). A estrutura WebKit do Android é compatível com a maioria dos mesmos
APIs para que você possa receber registros da sua página da Web ao depurar nos
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
. Você deve
fornecem um
WebChromeClient
que implementa
as
onConsoleMessage()
para que as mensagens do console apareçam no Logcat. Em seguida, aplique
WebChromeClient
para seu WebView
com
setWebChromeClient()
.
Para mais informações, consulte Webview
na documentação do Google Cloud.
O exemplo abaixo mostra como usar 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
no nível da mensagem com
messageLevel()
para
determinar a gravidade da mensagem e, em seguida, usar as
Log
ou realize outras ações apropriadas.
Esteja você usando
onConsoleMessage(String, int, String)
ou
onConsoleMessage(ConsoleMessage)
,
quando você executa um método de console em sua página da web, o Android chama o
onConsoleMessage()
apropriado
para informar o erro. Por exemplo, com o código de exemplo acima, uma
A mensagem do Logcat é mostrada e fica assim:
Hello World -- From line 82 of http://www.example.com/hello.html
Veja a seguir 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 tecnologias
recursos da Web em WebView
.
Para fazer isso, siga estas etapas:
Instale uma das opções de pré-lançamento do
WebView
canais (Beta, dev ou canário){: .external}.Mudar a
WebView
canal no dispositivo de teste para o canal de pré-lançamento instalado.Clique na tela de início do WebView DevTools:
Figura 1. Ícone do WebView do DevTools para app instalado em um dispositivo.No DevTools, clique em Flags e pesquise os recursos experimentais que você quer ativar ou desativar. A alteração se aplica a todas as
WebView
instâncias na o dispositivo.Interrompa e reinicie o app para começar a testar os novos recursos.
Para mais informações sobre a alternância de flags, consulte a página do WebView
DevTools
na documentação do Google.