【问题标题】:UIWebView open link in Safari not working?Safari 中的 UIWebView 打开链接不起作用?
【发布时间】: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。你认为我在代码上遗漏了什么吗?

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

【问题讨论】:

    标签: iphone html objective-c ios uiwebview


    【解决方案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; 
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 2014-03-16
      相关资源
      最近更新 更多