¿Qué se considera onPageFinished en el WebViewClient para Android?
Estoy intentando realizar una acción en un WebView de Android después de que mi página web termine de cargarse. Configurar mi WebView para tener un WebViewClient para hacer uso de la devolución de llamada de evento onPageFinished. Sin embargo, después de algunas pruebas, no parece que esperar hasta que todos los JS en la página se realiza la carga antes de mi código onPageFinished se dispara.
La documentación de Google dice esto:
- Obteniendo webViewClient.shouldInterceptRequest () en android 2.x
- Android: EventHub.removeMessages (int what = 107) no es compatible antes de que se configure WebViewCore
- Cómo obtener URL de enlace en Android WebView con HitTestResult para una imagen vinculada (y no la URL de imagen) con Longclick
- Android JS en WebView.loadUrl ()
- WebView de Android ignorando target = "_ blank" cuando se agrega WebViewClient
public void onPageFinished (WebView view, String url)
Añadido en el nivel de API 1 Notificar a la aplicación host que una página ha terminado de cargar. Este método se llama sólo para el marco principal. Cuando onPageFinished () se llama, la imagen de renderizado no se puede actualizar todavía. Para obtener la notificación para la nueva imagen, use onNewPicture (WebView, Imagen).
Parámetros
vista El WebView que está iniciando la devolución de llamada.
url La url de la página.
1) ¿EnPageFinished solo espera a que el DOM se cargue?
2) ¿Hay una manera de detectar cuando termina cualquier JS en la página? Si es así, ¿qué debo usar?
No veo nada en WebViewClient que sea para ese propósito. No quiero añadir un retraso ya que mis usuarios pueden estar en EDGE o en LTE.
- Android: comprueba si la solicitud es GET o POST
- Abrir PDF en un WebView
- Android WebClient, devolver un recurso de imagen a través de WebResourceResponse - no mostrar la imagen
- Cómo establecer un título diferente para el cuadro de diálogo de alerta cuando se carga la página WebView?
- Sube la foto de la cámara y el archivador de archivos desde el campo INPUT de la vista web
- WebView - no puede descargar el archivo sin solicitarlo dos veces?
- Habilitación de JavaScript general en WebViewClient
- Interceptar y anular las solicitudes HTTP de WebView
Es necesario implementar las devoluciones de llamada de WebChromeClient. El onPageFinished () es una API que es proporcionada por WebViewClient. Hay otra interfaz llamada WebChromeClient que proporciona la información de progreso que está buscando:
Abra el enlace anterior y busque onProgressChanged (vista WebView, int newProgress) – la variable 'newProgress' le da el porcentaje de carga de página que se completó. Cuando llega a 100 tiene una página válida. onPageFinished () no se puede utilizar de forma fiable para esto (debido a redirecciones de servidor, etc)
No sé a qué se refiere cuando "JS en la página está terminado". Tal vez usted puede aclarar lo que quería decir?
Para responder a su primera pregunta: He encontrado que onProgressChanged
no alcanzará 100
, y onPageFinished
no será llamado hasta que todos los activos (css / js / images) hayan terminado de cargar esa página.
Sin embargo, no puedo encontrar ninguna documentación oficial que indique eso.
- Codificación de caracteres por defecto Jersey / Rest
- Cómo cambiar la posición de un spinner según la posición de otro spinner en dos actividades diferentes