Depurar apps da Web

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

  1. Instale uma das opções de pré-lançamento do WebView canais (Beta, dev ou canário){: .external}.

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

  3. Clique na tela de início do WebView DevTools:


    Figura 1. Ícone do WebView do DevTools para app instalado em um dispositivo.

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

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