Safari中的UIWebView打开链接无法正常工作?

时间:2011-12-15 15:35:00

标签: iphone html objective-c ios uiwebview

我正在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。你觉得我在代码上遗漏了什么吗?

问题:如何在单击中打开链接?

1 个答案:

答案 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; 
}