Reflejos y registros de WebView ---Configuraciones de personalización y preguntas frecuentes
No mencionaré algunos contenidos básicos. Lo siguiente registra principalmente el contenido que necesita atención especial durante el desarrollo.
Para completar la vista web con ciertas funciones personalizadas, debe estar involucrado. Los siguientes contenidos, WebSetting, WebViewClient, WebChromeClient, nos permiten personalizar algunos contenidos
Inicialización
Los más importantes son:
Ayuda Manejar varias notificaciones y. eventos de webView
La configuración es la siguiente:
onPageStarted()
Muchas veces, este método se llamará más de una vez porque la URL existe Redirección problema, por lo que habrá situaciones en las que onpageStarted () no solo se llame una vez, sino que también se llame al procesamiento lógico interno varias veces. Al escribir, debe prestar atención para asegurarse de que, aunque la lógica interna se llame varias veces, es mejor. para ejecutarlo solo una vez. Agregue algunos mecanismos de prevención.
Sin embargo, después de pruebas reales, se descubrió que a veces después de hacer clic en un enlace, la vista web puede regresar, pero canGoBack es falso. Más tarde, después de pruebas continuas, se descubrió que algunas URL se cargan después de la. El progreso es de aproximadamente 30. , webView.canGoBack() devolverá verdadero.
onPageFinished()
se llamará después de cargar el sitio web y también se puede procesar cierta lógica en él, como la lógica de la barra de progreso:
Por favor tenga en cuenta aquí que debe Debe configurar la visibilidad en GONE. Si está configurada en INVISIBILIDAD, aún puede haber una situación en la que la barra de progreso no desaparezca después de cargar a 100, por lo que debe configurarla en GONE. >
Nota: En algunas versiones inferiores de En algunos teléfonos móviles, este método también se llamará varias veces,
deberíaOverrideUrlLoading()
Es mejor devolver falso, ya sea tenga cuidado de devolver verdadero;
En el sitio web oficial La declaración anterior es así:
Además, este método devuelve falso de forma predeterminada, por lo que no es necesario reescribir este método. Sólo necesita:
usar webview para cargar el enlace.
Puedes saber cómo utilizar los otros dos métodos observando su significado.
WebChromeClient ayuda a webView a procesar cuadros de diálogo de JavaScript, íconos de sitios web, títulos de sitios web, progreso de carga y otros eventos.
Las configuraciones son las siguientes:
onProgressChanged(; )
p>
Procese el progreso y actualice el progreso de la barra de progreso; configúrelo aquí para obtener webView.canGoBack(); encontrará que al principio, el valor de retorno es falso y comienza a funcionar. devuelve verdadero cuando el progreso llega a aproximadamente 30; p>
Muchas veces, necesitamos mostrar el progreso de carga y carga al mismo tiempo. En este momento, podemos colocar WebView y ProgressBar en un LinearLayout, lo que lo hace más. Conveniente para operar los dos.
Por ejemplo:
Nota: cuando se complete la carga, establezca la barra de progreso en setVisibility(View.GONE);
Nota: preste atención al fondo de el diseño raíz, porque pueden aparecer algunos colores de fondo blanco y negro durante el cambio de pantalla completa, lo que generalmente es causado por el color de fondo del diseño raíz.
Enlace de referencia: