ShouldOverrideUrlLoading no funciona / captura los clics del enlace mientras la página se está cargando
Estoy utilizando WebViewClient.shouldOverrideUrlLoading para capturar cualquier clic de enlace en el WebView. Esto funciona alrededor del 95% del tiempo, pero a veces simplemente no se llama.
Lo he notado en estas tres circunstancias:
- Cómo buscar Android ViewFlipper Ejemplo con varias WebViews
- WebView Crash por java.io.IOException: cerrar error: EIO (error de E / S) libcore.io.IoUtils.close (IoUtils.java:41)
- Android WebViewClient onReceivedError no se llama para un error 404
- Android: abra los vínculos _blank de destino en WebView con un navegador externo
- Obtener recursos de WebView que ya se ha descargado
- Cuando el enlace señala a la página ya están activados. Este no es un gran negocio, y hay un error reportado para ello .
- Mientras la página sigue cargando, si el usuario hace clic en un vínculo, rara vez lo captura. Sólo se abrirá el enlace sin necesidad de llamar a
shouldOverrideUrlLoading
. - Aleatoriamente. Al experimentar con esto en los últimos meses me he dado cuenta de que a veces simplemente no lo captura. Es raro pero sucede.
Ahora mi pregunta es sobre todo cómo arreglar el problema 2, ya que los otros son menos de una gran cosa. 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 he notado que siempre volver true parece tener el mejor resultado, pero los problemas anteriores todavía suceden.
- Deshabilitar Android WebView / WebViewClient Iniciado favicon.ico Solicitar
- Cómo obtener URL de enlace en Android WebView con HitTestResult para una imagen vinculada (y no la URL de imagen) con Longclick
- WebView - no puede descargar el archivo sin solicitarlo dos veces?
- Sube la foto de la cámara y el archivador de archivos desde el campo INPUT de la vista web
- Android: comprueba si la solicitud es GET o POST
- WebView loadUrl sólo funciona una vez
- Android - Utilice OkHttp con Webview
- Vista Web de Android
Si el HTML es tuyo, puedes reemplazar todos los enlaces tradicionales con llamadas a tu propio objeto Java, inyectados en el WebView
mediante addJavascriptInterface()
. Entonces ya no dependerá de shouldOverrideUrlLoading()
.
De lo contrario, tal vez intente evitar que el usuario interactúe con la página hasta que onPageFinished()
.
No me he encontrado con este problema, pero tampoco he hecho un uso extenso de WebView
con contenido arbitrario.
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 de url / protocolo hace que la captura de shouldOverrideUrlLoading
en shouldOverrideUrlLoading
. Sé que esto no te ayuda ya que no eres el propietario del HTML, pero pensé que ayudaría a cualquier otra persona que tropiece con este problema.
- Hola módulo del núcleo del mundo para la reubicación de android y desconocido: 27 cuando insmod
- Mantener el ID de registro de la aplicación GCM válido durante las actualizaciones automáticas