Safari 中的 UIWebView 打开链接不起作用?

Posted

技术标签:

【中文标题】Safari 中的 UIWebView 打开链接不起作用?【英文标题】:UIWebView open link in Safari not working? 【发布时间】:2011-12-15 15:35:00 【问题描述】:

我正在我的 iPhone 应用程序中处理常见问题解答页面。我在顶部有一些问题链接将直接在底部回答。有些答案有我想在 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】:

终于在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; 

【讨论】:

以上是关于Safari 中的 UIWebView 打开链接不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

通过 UIWebView 从网页打开 Safari 中的链接

如何从 UIWebView 打开 safari.app 中的外部链接?

从app中的Safari链接打开safari

当我单击 UIWebView 时,如何在 Safari 中打开链接?

如何使用 Safari 应用程序在 UIWebView 中启动链接?

为啥 UIWebView 不能在 Safari 中打开我的链接?