Cómo depurar aplicaciones web

Puedes depurar tu JavaScript con las APIs de JavaScript de console y ver los mensajes de salida en Logcat. Si ya sabes cómo depurar páginas web Firebug o Web Inspector, probablemente, ya sepas usar console. (por ejemplo, console.log()). El framework WebKit de Android admite casi para que puedas recibir registros desde tu página web cuando depures en tu WebView En este tema, se describe cómo usar las APIs de la consola para la depuración.

Cómo usar las APIs de la consola en WebView

Las APIs de la consola también son compatibles con la depuración en WebView. Debes proporciona un WebChromeClient que implementa el onConsoleMessage() método para que los mensajes de la consola aparezcan en Logcat. Luego, aplica el WebChromeClient a tu WebView con setWebChromeClient() Para obtener más información, consulta la Webview. en la documentación de Google Cloud.

En el siguiente ejemplo, se muestra cómo usar las APIs de la consola en 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;
    }
});

El objeto ConsoleMessage también incluye un elemento Objeto MessageLevel para indicar el tipo de mensaje de la consola que se entrega. Puedes consultar a nivel de mensaje con messageLevel() a determinar la gravedad del mensaje y, luego, usar las medidas Log o realiza otras acciones apropiadas.

Ya sea que uses onConsoleMessage(String, int, String) o onConsoleMessage(ConsoleMessage), cuando ejecutas un método de la consola en tu página web, Android llama al apropiado onConsoleMessage() método para informar el error. Por ejemplo, con el código de ejemplo anterior, un Se muestra un mensaje de Logcat que se ve de la siguiente manera:

Hello World -- From line 82 of http://www.example.com/hello.html

Los siguientes son recursos adicionales relacionados con la depuración:

Cómo probar funciones web experimentales

Al igual que en la página chrome://flags de Google Chrome, también puedes probar las pruebas experimentales funciones web en WebView.

Para hacerlo, sigue estos pasos:

  1. Instala una de las versiones previas al lanzamiento de WebView. canales (beta, dev, or canary){: .external}.

  2. Cambia el WebView canal en el dispositivo de prueba al canal instalado previo al lanzamiento.

  3. Haz clic en el selector de Herramientas para desarrolladores de WebView:


    Figura 1: Ícono de Herramientas para desarrolladores de WebView para la app instalada en un dispositivo.

  4. En Herramientas para desarrolladores, haz clic en Marcas y busca funciones experimentales. que deseas habilitar o inhabilitar. El cambio se aplica a las WebView instancias de el dispositivo.

  5. Detén y reinicia la app para comenzar a realizar pruebas con las funciones nuevas.

Para obtener más información sobre cómo activar o desactivar las marcas, consulta las Herramientas para desarrolladores de WebView. documentación.