2012-07-06 21 views

Trả lời

5

Có, bạn có thể thực hiện việc này. Triển khai

– webView:shouldStartLoadWithRequest:navigationType: 

delegate này. Phương thức này được gọi bất cứ khi nào webview của bạn sắp thực hiện yêu cầu. Vì vậy, bây giờ khi ai đó nhấp vào một nút hoặc liên kết trên trang web của bạn, bạn sẽ nhận được cuộc gọi đến phương thức này. Sau khi bạn bắt được cuộc gọi này, bạn có thể chọn làm bất cứ điều gì bạn muốn với nó. Giống như chuyển hướng liên kết thông qua máy chủ của riêng bạn hoặc đăng nhập yêu cầu tới máy chủ của bạn về hoạt động của người dùng hoặc trong trường hợp của bạn, hãy mở trang nhận xét hoặc thay đổi thanh điều hướng, v.v.

Có thể từ số request bạn có thể tìm hiểu xem mã phản hồi HTTP được 3xx chuyển hướng sau đó bạn có thể làm những gì bạn muốn ...

+1

vậy, làm cách nào để nhận URL được chuyển hướng? – neerajPK

+0

hoặc, là bất kỳ cách nào để tìm chuyển hướng nào bị lỗi. thực sự chuyển hướng url web của tôi hai lần. nếu chuyển hướng đầu tiên đi faild tôi cần phải làm một số hành động. là cách nào của họ? – neerajPK

+0

làm thế nào để tìm ra các responsecode từ yêu cầu chính nó? – hariszaman

1

Hãy thử điều này:

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

trên thực tế trang web sẽ tự động chuyển hướng đến một webUrl khác – neerajPK

2

tôi tìm thấy thread này khi phải làm như vậy. Tôi đã sử dụng câu trả lời của Srikar, nhưng đây là mã của tôi.

Tôi đang sử dụng đăng nhập Lumberjack, nhưng bạn có thể thay thế bên dưới bằng NSLog. Bạn cũng có thể nhận được các phần cụ thể của URL nếu bạn đang xem lưu trữ, đường dẫn hoặc chuỗi truy vấn để biết liệu có sự cố không (đó là những gì tôi sắp phải làm). Nếu nó chuyển hướng nhiều lần, mỗi yêu cầu sẽ được gọi ở đây và nếu bạn muốn bạn có thể dừng nó và làm điều gì đó hoặc chỉ quan sát.

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType 
{ 
    DDLogVerbose(@"Redirecting to URL: %@", inRequest.URL.absoluteString); 
    return YES; 
} 
Các vấn đề liên quan