Estoy usando WebViewClient.shouldOverrideUrlLoading para captar los clics de cualquier vínculo en WebView. Esto funciona aproximadamente el 95% del tiempo, pero a veces simplemente no se llama.shouldOverrideUrlLoading no funciona/atrapa los clics del enlace mientras se carga la página
me he dado cuenta que en estas tres circunstancias:
- Cuando los puntos de enlace a la página que ya están encendidas. Este no es un gran problema, y hay un bug reported for it.
- Mientras la página aún se está cargando, si el usuario hace clic en un enlace, rara vez lo atrapa. Simplemente abrirá el enlace sin llamar al
shouldOverrideUrlLoading
. - Aleatoriamente. Al experimentar con esto en los últimos meses me he dado cuenta de que a veces simplemente no lo capta. Es raro, pero sucede.
Ahora mi pregunta es sobre todo cómo solucionar el problema 2, ya que los otros son menos importantes. Sin embargo, si alguien ha resuelto 1 o 3, me encantaría saberlo.
Además, debo mencionar que he probado diferentes valores de retorno en shouldOverrideUrlLoading
y me he dado cuenta de que siempre volviendo cierto parece tener el mejor resultado, pero las cuestiones antes mencionadas siguen sucediendo.
He tenido un problema similar al intentar cambiar la página web con js en la página que modifica 'window.location'. Resulta que la modificación del esquema/protocolo de url hace que la vista web capte 'shouldOverrideUrlLoading'. –
Usted dice, en un comentario sobre la respuesta aceptada, que la causa del problema estaba en su lógica. Nunca mencionas cuál fue el verdadero problema. Tengo este problema, y de google parece que no soy el único. ¿Te importaría reservar un momento y contarnos cómo lo resolviste? – mickey
@mickey, gracias por señalar esto. ¡Lo siento por eso! Escribí una respuesta a continuación. (En las respuestas aceptadas, comentarios) – cottonBallPaws