Để mở rộng vào những gì Randy nói, đây là những gì tôi sử dụng trong ứng dụng của tôi để làm cho mọi http: //, https: //, và mailto: // URL mở ở bên ngoài Safari hoặc Mail ứng dụng:
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
{
NSURL *requestURL =[ [ request URL ] retain ];
if (([ [ requestURL scheme ] isEqualToString: @"http" ] || [ [ requestURL scheme ] isEqualToString: @"https" ] || [ [ requestURL scheme ] isEqualToString: @"mailto" ])
&& (navigationType == UIWebViewNavigationTypeLinkClicked)) {
return ![ [ UIApplication sharedApplication ] openURL: [ requestURL autorelease ] ];
}
[ requestURL release ];
return YES;
}
Như Randy nói, bạn sẽ muốn thực hiện điều này trong bất kỳ lớp nào bạn đặt làm đại biểu của UIWebView. Để chỉ có các URL chọn khởi chạy Safari, bạn có thể thay đổi lược đồ của chúng từ http: // thành safari: // hoặc tương tự và chỉ đá các URL đó vào hệ thống (sau khi thay thế lược đồ URL tùy chỉnh bằng http: //) .
Tôi làm điều này trong tài liệu trợ giúp nội bộ của tôi, HTML được hiển thị trong UIWebView, để tôi không gặp phải vấn đề trong quá trình xem xét với trình duyệt web có mục đích chung được nhúng trong ứng dụng của tôi.
Nguồn
2010-03-28 12:32:28
[http://stackoverflow.com/questions/4452719/how-do-i-open-links-in-safari-thay-of-uiwebview/12103579 # 12103579] [1] [1]: http: // stackoverflow.com/questions/4452719/how-do-i-open-links-in-safari-thay-of-uiwebview/12103579 # 12103579 –