El problema de que WebView onPageFinished se llama repetidamente

Recientemente, estoy desarrollando una nueva aplicación. Debido a que se colocará en la tienda de Google, el componente webview usa el nativo oficial de Android. Resulta que onPageFinished se llamará repetidamente y se cargará un total de 3 veces, y mi URL no tiene problemas de redirección.

investigación:

WebViewClient.onPageFinished(). Nunca puede estar seguro de que cuando WebView llame a este método, el contenido web esté realmente cargado. Este método puede llamarse varias veces cuando la página web que se está cargando actualmente genera un salto. Hay una explicación más específica en StackOverflow (¿
Cómo escuchar una vista web que termina de cargar una URL en Android?),
Pero las soluciones enumeradas allí no son perfectas. Entonces, cuando su WebView necesita cargar varias páginas web y necesita tomar alguna acción cuando se completa la carga de la página, WebChromeClient.onProgressChanged() puede ser más confiable que WebViewClient.onPageFinished().
La devolución de llamada onPageFinished() de WebView se llamará una vez más en los teléfonos móviles con Android 4.4 (se debe rastrear el motivo específico)

Es necesario evitar realizar operaciones comerciales en onPageFinished() tanto como sea posible, de lo contrario, dará lugar a llamadas repetidas y puede causar errores lógicos.

Más tarde, traté de cambiar a X5WebView de Tencent y descubrí que era normal y solo se cargaba una vez. Es una pena que x5 distribuya y descargue dinámicamente paquetes y otros problemas, por lo que no es adecuado para la integración en aplicaciones en Google Store.

Conclusión:
X5WebView se recomienda solo para aplicaciones en China continental;
para aplicaciones que deben estar en Google Play Store, solo puede usar WebView nativo, escriba una variable o método para encontrar una manera de evitar el problema de las llamadas repetidas.

Supongo que te gusta

Origin blog.csdn.net/Jackson_Wen/article/details/122285537
Recomendado
Clasificación