2012-03-30 18 views
13

En mi aplicación, shouldOverrideUrlLoading() no se llama en la versión de Honeycombe 3.2. Lo probé en 2.2 y 4.0.1 y todos funcionan bien.Android webview shouldOverrideUrlLoading no se llama

¿Es un error en Honeycomb? ¿Cómo puedo solucionarlo?

Necesito enviar la cabecera personalizada para cada solicitud en shouldOverrideUrlLoading()

view.loadUrl(url,headers); 

Gracias de antemano.

+0

'shouldOverrideUrlLoading()' no se desencadena cuando la solicitud es POST (quizás esta es la razón). –

+0

@SYLARRR Intenté tanto GET como POST en otra versión y funciona. – Riddle

+0

Esta función muchas veces nunca se llama. He encontrado el mismo problema en una serie de sitios web que incluyen www.youtube.com No he profundizado lo suficiente para descubrir por qué, pero básicamente esta función no es confiable. – Lee

Respuesta

10

Este método solo se ejecutará cuando el usuario realice la navegación. No siempre se llamará si el sitio web redirige al usuario. Un escenario común para esto es un sitio web que usa AJAX para cambiar el contenido de la página o redirigir al usuario.

Consulte las otras devoluciones de llamada en WebViewClient para encontrar una que se ajuste a sus necesidades: onLoadResource, onPageStarted. En tu caso, apuntas al nivel de API 11+, por lo que shouldInterceptRequest también está disponible para ti.

+0

ninguno de estos 3 métodos son llamados, pero en algunas ocasiones encontré registros que realmente se activaron. ¿Es esta rutina poco confiable? –