有时我们用UIWebView显示html内容时,会出现html中有超链接的情况,这时我们如果想在用点击超链接时用调用iOS系统的Safari打开这些目标链接,而不是在UIWebView里面打开,我们可以用以下方法,在UIWebView 的委托中实现
#pragma mark - UIWebView Delegate
- (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;
}
如果想在用户点击这些超链接时,不去响应这些链接(默认会在本UIwebView直接打开),可以在上面的委托返回NO,不过要在第一次加载完UIWebView后才返回NO,不然UIWebView加载不出内容,因为UIWebView每次连接都会进入此委托....