Har*_*ode 1 html iphone objective-c uiwebview ios
我正在iPhone App中的FAQ页面上工作.我有一些问题链接在顶部将直接回答在底部.一些答案有外部链接,我想在Safari而不是UIWebView中打开.
我发现这个代码 从这里:
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if ( inType == UIWebViewNavigationTypeLinkClicked ) {
[[UIApplication sharedApplication] openURL:[inRequest URL]];
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我需要单击链接两次以打开链接.第一次触摸它突出显示的链接.第二次触摸它到目的地的链接或它在Safari中打开的外部链接.但是,如果我删除上面的代码,它在第一次触摸时工作,但外部链接在我的WebView中打开.
注意:我有一个UIWebView委托名称wvFAQ.你觉得我在代码上遗漏了什么吗?
问题:如何单击打开链接?
终于从这里找到了我的问题的答案
这是答案:
-(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;
}
Run Code Online (Sandbox Code Playgroud)