Cómo detener la ejecución de JavaScript en Android Webview
Escenario: Tengo una actividad que contiene un WebView. Cada vez que inicie esa actividad, algunos contenidos HTML se procesan dentro de WebView. También estoy inyectando Javascript en WebView que tiene algún código que incluye el detector de eventos DomContentLoaded.
Problema: El problema es que a veces JavaScript está tardando mucho tiempo en ejecutar en WebView. Esto sucede al azar no cada vez. La mayor parte del tiempo se carga muy rápido. Pero a veces para el mismo contenido se tarda> 20 segundos en ejecutarse. Ahora en este estado, si vuelvo de la actividad y la vuelvo a iniciar, Javascript no se cargará en WebView, ya que la ejecución anterior de JS aún no está terminada. Tengo que matar la aplicación y empezar de nuevo con el fin de hacer que el trabajo WebView. ¿Cómo recuperarse de este estado sin matar la aplicación? Intenté detenerlo utilizando el código siguiente, pero ninguno funcionó. ¿Cualquier otra sugerencia?
- Jest error de caso de prueba en reactivo nativo mediante el complemento externo
- Android WebView añadiendo extraño espacio vacío en la parte inferior
- Android WebView - Configuración del enfoque de campo HTML con Javascript
- Equivalente webkit de escritorio de Android addJavascriptInterface ()?
- Android webview javascript no funciona con loadDataWithBaseUrl
webView.stopLoading(); webView.loadData("", "text/html", null); webView.freeMemory(); webView.removeAllViews(); webView.destroy();
- Uso de Javascript en la vista web
- Android WebView canGoBack siempre es cierto
- ¿Cómo detectar automáticamente la necesidad de iScroll?
- Técnica fiable para el seguimiento de invitaciones a instalaciones móviles
- window.plugin.pushNotification no está definido en Cordova 3.6.4
- JavaScript visibilitchange Evento no dispara en Chrome móvil
- El navegador de Android dificulta los eventos para dos taps en rápida sucesión
- Cómo almacenar datos de json de forma segura en phonegap android?
Usted podría intentar desactivar Javascript temporalmente y luego activarlo de nuevo en este modo:
webview.getSettings().setJavaScriptEnabled(false); webview.getSettings().setJavaScriptEnabled(true);
Pero si estás intentando limpiar recursos en un WebView, la documentación dice:
Utilice WebView.loadUrl ("about: blank") para restablecer de forma fiable el estado de la vista y los recursos de la página de publicación (incluyendo cualquier JavaScript en ejecución).
http://developer.android.com/reference/android/webkit/WebView.html#clearView%28%29
- ¿Cómo puedo pasar los datos a Android Market con el nuevo esquema de cromo?
- ¿Podemos utilizar la clase EffectFactory para versiones inferiores