Depurar apps da Web

É 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:

  1. Instale um dos canais de pré-lançamento WebView (beta, dev ou canário){: .external}.

  2. Mudar o canal WebView no dispositivo de teste para o canal de pré-lançamento instalado.

  3. Clique no iniciador do WebView DevTools:


    Figura 1. Ícone das ferramentas do WebView para o app instalado em um dispositivo.

  4. 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.

  5. 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.