Cómo saber cuando se ha terminado la renderización de WebView

Quiero mostrar una barra de progreso mientras el WebView se está cargando. Lo estoy ocultando en OnPageFinished (), pero esto es demasiado pronto. La vista Web sigue procesando la imagen.

La documentación de WebView indica: "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, Picture)".

Sin embargo, OnNewPicture y la interfaz PictureListener están obsoletas y obsoletas. ¿Hay otra manera de saber que la renderización está completa?

4 Solutions collect form web for “Cómo saber cuando se ha terminado la renderización de WebView”

Desafortunadamente, he encontrado que no hay ningún evento o mecanismo para saber realmente cuándo la página está completamente cargada y terminada de renderizado.

Creo que puede agregar y ejecutar JavaScript función al final de la etiqueta de cuerpo de su página web para llamar a su función de interfaz de JavaScript para ocultar la barra de progreso. Pero, tenga cuidado de habilitar JavaScript en su WebView.

Estoy sufriendo el mismo problema, pero no hay manera de saber el momento. La única manera que uso es dar suficiente espacio para la terminación de la representación por postDelayed ().

En mi caso 200ms es suficiente si u no utilizan contenidos pesados ​​más de 200K en texto.

¿Qué hay de crear un WebChromeClient personalizado y sobreescribir sus métodos onReceivedIcon () o onProgressChanged (). El onReceivedIcon () se activará una vez que se cargue el favIcon y usando el método onProgressChanged (), puede consultar el progreso de la carga de la webview. espero que esto ayude

Consulte este fragmento de código

webView.setWebChromeClient(new CustomWebChromeClient()); 

Usted puede utilizar onProgressChanged o onReceivedIcon lo que se adapte a sus necesidades.

 public class CustomWebChromeClient extends WebChromeClient { @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); if (newProgress==100) { progressBar.setVisibility(View.GONE); progressBar.setProgress(newProgress); } } @Override public void onReceivedIcon(WebView view, Bitmap icon) { // icon received here super.onReceivedIcon(view, icon); } } 
  • ¿Cómo anular algunos eventos de gestos en una webview, pero dejar que otros a través de?
  • WebView aparece como un cuadro blanco normal después de la segunda vez que se ha inicializado
  • Webview dentro del listview: conflictos de eventos táctiles Por lo tanto no puede pellizcar Zoom IN / OUT en android
  • ¿Por qué CordovaWebViewClient no funciona en Cordova 6 más
  • CrossWalk - Aceptar encabezado de idioma
  • ¿Cómo puedo utilizar los efectos de transición de Android en la vista web?
  • Cambiar color del fondo y color de la fuente
  • La página Web Gujarati no se muestra perfecta en la vista Web
  • WebView y HTML5 <video>
  • WebView Crash por java.io.IOException: cerrar error: EIO (error de E / S) libcore.io.IoUtils.close (IoUtils.java:41)
  • WebView Mostrar página blanca o en blanco
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.