我正在iPhone App中的FAQ页面上工作。我有一些问题链接在顶部将直接回答在底部。有些答案有外部链接,我想在Safari而不是UIWebView中打开。
我找到了这段代码 来自here:
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if ( inType == UIWebViewNavigationTypeLinkClicked ) {
[[UIApplication sharedApplication] openURL:[inRequest URL]];
return NO;
}
return YES;
}
出于某种原因,我需要点击两次链接才能打开链接。第一次触摸它突出显示的链接。第二次触摸它到目的地的链接或它在Safari中打开的外部链接。但是,如果我删除上面的代码,它在第一次触摸时工作,但外部链接在我的WebView中打开。
注意:我有一个UIWebView委托名称wvFAQ。你觉得我在代码上遗漏了什么吗?
问题:如何在单击中打开链接?
答案 0 :(得分:5)
最后从here
找到了我的问题的答案以下是答案:
-(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;
}