Depurar apps da Web

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:

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

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

  3. Clique no iniciador DevTools do WebView.

    Ícone do iniciador do WebView DevTools.
    Figura 1. Ícone do WebView DevTools para um app instalado em um dispositivo.
  4. 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.

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