2012-07-06 25 views

Respuesta

5

Sí, puedes hacer esto. Implementar

– webView:shouldStartLoadWithRequest:navigationType: 

Este delegate. Se llama a este método cada vez que su vista web está a punto de realizar una solicitud. Entonces, cuando alguien haga clic en un botón o hipervínculo en su página web, recibirá una llamada a este método. Después de atrapar esta llamada, puede elegir hacer lo que quiera con ella. Al igual que redirigir el enlace a través de sus propios servidores, o registrar una solicitud a su servidor sobre la actividad del usuario o en su caso abrir la página de comentarios o cambiar la barra de navegación, etc.

Tal vez desde el request puede averiguar si el código de respuesta HTTP se 3xx redirección entonces usted puede hacer lo que quiera ...

+1

Entonces, ¿cómo obtendré la URL redirigida? – neerajPK

+0

o, es su forma de encontrar qué redirección se produjo un error. En realidad, mi url web redirige dos veces. si el primer redireccionamiento falla, necesito hacer algunas acciones. ¿Es de alguna manera? – neerajPK

+0

cómo averiguar el código de respuesta de la solicitud en sí? – hariszaman

1

Prueba esto:

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType { 
     if (inType == UIWebViewNavigationTypeLinkClicked){ 
      [[UIApplication sharedApplication] openURL:[inRequest URL]]; 
      return NO; 
     } 
     return YES; 
    } 
+0

en realidad el sitio redirige automáticamente a otra webUrl – neerajPK

2

yo encontramos este hilo al tener que hacer lo mismo. Utilicé la respuesta de Srikar, pero aquí está mi código.

Estoy usando el registro de Lumberjack, pero puede reemplazar el siguiente con solo NSLog. También puede obtener partes específicas de la URL si estaba buscando el host, la ruta o la cadena de consulta para saber si hay una falla (que es lo que voy a hacer). Si redirige varias veces, se llamará a cada solicitud aquí y, si lo desea, puede detenerlo y hacer algo o simplemente observar.

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType 
{ 
    DDLogVerbose(@"Redirecting to URL: %@", inRequest.URL.absoluteString); 
    return YES; 
} 
Cuestiones relacionadas