2010-05-14 9 views
11

Tengo curiosidad si hay una forma de detectar un cambio en el sitio web mostrado dentro de un UIWebView. En una aplicación en la que estoy trabajando utilizamos un UIWebView para presentar una parte de la funcionalidad, que básicamente son unos pocos pasos que el usuario debe seguir. Sin embargo, será una página específica al final de estos pasos que debo identificar y luego la aplicación debe mostrar una vista diferente.Obtenga una notificación sobre un cambio de página en UIWebView

Desafortunadamente, el UIWebViewDelegate no parece hacer el truco.

¿Algún consejo al respecto?

tenga un buen fin de semana y gracias
-f

Respuesta

21

Si los pasos de usuario son separados en diferentes páginas, y las necesidades UIWebView para cargar los diferentes pasos, este hecho debe ser posible con los métodos de delegado.

En este ejemplo, decimos que el usuario pasa a través de 3 pasos, llamado step1.htm, step2.htm y finalmente step3.htm. Este código detectará cuando el usuario llegue al tercer y último paso.

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    NSString *URLString = [[request URL] absoluteString]; 
    if ([URLString isEqualToString:@"http://www.example.com/step3.htm"]) { 
     // The user reached step 3! 
    } 
    return YES; 
} 

Tenga en cuenta que utilizando el método absoluteString podría no ser la mejor manera de averiguar dónde está navegando por el usuario. Eche un vistazo a query, path, parameterString, etc ...

+0

Oh de alguna manera me perdí eso. ¡Gracias, eso es exactamente lo que he estado buscando! – flohei

+1

¿Hay alguna manera de recibir una notificación cuando la nueva página complete la carga? (se llama a este método antes de que comience a cargarse) – Stan

+1

Para completarlo, deberá obtener la delegación en la vista web como: en ViewController.m: self.myWeview.delegate = self; y en ViewController.h: @interface ViewController: UIViewController turzifer

Cuestiones relacionadas