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?

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); } } 
  • No se puede obtener la URL actual del evento de clic de WebView en Android
  • ¿Cómo manejar el cambio de parámetro shouldInterceptRequest en API21?
  • Obtener valor href de la etiqueta de anclaje en Android WebView cuando se hace clic en el enlace
  • Android webview tiene borde blanco alrededor de él y cómo puedo deshacerme de él?
  • ¿Cómo comunicarse entre WebView y JavaScript?
  • WebView en el cuadro de diálogo
  • Captura la imagen desde WebView
  • Prevenir las recargas de WebView en FragmentPagerAdapter?
  • Cómo cargar el archivo html almacenado dentro de la tarjeta SD en la vista web
  • Error en Webview con targetSdkVersion 24
  • Cómo evitar la actualización automática de WebView cuando la rotación de la pantalla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.