Tengo un navegador web básico implementado utilizando un UIWebView
. Me he dado cuenta de que para algunas páginas, no se llama a ninguno de los métodos UIWebViewDelegate
.UIWebView: webViewDidStartLoad/webViewDidFinishLoad métodos de delegado no invocados al cargar ciertas URL
Una página de ejemplo en la que esto sucede es: http://www.youtube.com/user/google. Estos son los pasos para reproducir el problema (asegúrese de insertar NSLog
llamadas en UIWebViewDelegate
métodos de su controlador):
- carga lo anterior URL de YouTube en el
UIWebView
[aviso de que aquí, los métodosUIWebViewDelegate
no consiguen llamar cuando el cargas de la página] - toque la categoría "archivos" en la página
- táctil ningún video en esa categoría [tema: aviso de que se carga una nueva página, pero ninguno de los delegados UIWebView se llaman]
Sé que esto no es un problema de que el delegado UIWebView
no se haya configurado correctamente, ya que los métodos delegados se invocan al cargar otros enlaces (p. si intenta hacer clic en un enlace que lo lleva fuera de youtube, notará que se están llamando a los métodos de delegado).
Mi intuición inicial fue que podría deberse a que la página se carga utilizando AJAX, que puede no invocar el método de delegado. Pero cuando revisé Safari del iPhone, no presentaba este problema, así que debe ser algo de mi lado.
También he notado que Three20's TTWebController
tiene exactamente el mismo problema que el que tengo.
Pero el problema que surge de este problema es que sin los métodos de delegado denominados, no puedo actualizar la UI para habilitar/deshabilitar los botones de exploración hacia atrás y hacia adelante cuando se cargan nuevas solicitudes.
¿Y por qué sucede esto o cómo puedo solucionarlo para actualizar la UI cuando se realiza una nueva solicitud?
¿Estoy empezando a pensar que esto podría ser un error de iOS? –
No estoy en el cajero automático de mi Mac para intentar solucionar el problema, pero es interesante que hayas mencionado que sucede en alguna página de video. ¿Podría ser que la página mantenga la conexión abierta para la transmisión? Yo propondría que intentes hacer una NSURLRrquest con la URL de la página y ver si la conexión se cierra después de que se carguen los datos HTML. – pmilosev
Oye, ¿alguna vez resolvió este problema? Estoy jugando con m.youtube.com y es una pesadilla. –