2012-07-06 20 views

Odpowiedz

5

Tak, możesz to zrobić. Zaimplementuj

– webView:shouldStartLoadWithRequest:navigationType: 

Ten delegate. Ta metoda jest wywoływana za każdym razem, gdy twój webview ma zamiar złożyć wniosek. Teraz, gdy ktoś kliknie przycisk lub hiperłącze na swojej stronie, otrzymasz połączenie z tą metodą. Po złapaniu tego połączenia możesz wybrać, co chcesz z nim zrobić. Tak jak przekierowanie połączenia przez własne serwery lub zarejestrowanie żądania na serwerze o aktywności użytkownika lub w twoim przypadku wywołaj stronę komentarzy lub zmień pasek nawigacji itp.

Może od request możesz dowiedzieć się, czy kod odpowiedzi HTTP 3xx jest przekierowanie potem możesz robić co chcesz ...

+1

, więc w jaki sposób otrzymam przekierowany adres URL? – neerajPK

+0

lub jest ich sposobem na znalezienie, które przekierowanie się nie powiedzie. właściwie mój adres internetowy przekierowuje dwa razy. jeśli pierwsze przekierowanie zakończy się niepowodzeniem, muszę wykonać pewne czynności. jest ich jakikolwiek sposób? – neerajPK

+0

jak określić kod odpowiedzi z samego żądania? – hariszaman

1

Spróbuj tego:

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

faktycznie witryna automatycznie przekierowuje do innego webUrl – neerajPK

2

znalazłem ten wątek, gdy o to samo. Użyłem odpowiedzi Srikara, ale oto mój kod.

Używam rejestrowania drwali, ale można zastąpić poniższe tylko NSLog. Możesz również uzyskać określone części adresu URL, jeśli szukałeś hosta, ścieżki lub ciągu zapytania, aby dowiedzieć się, czy wystąpiła usterka (co właśnie mam zrobić). Jeśli przekierowuje kilka razy, każde żądanie zostanie wywołane tutaj, a jeśli chcesz, możesz go zatrzymać i zrobić coś lub po prostu obserwować.

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