【问题标题】:How to open UIWebView from another UIWebView?如何从另一个 UIWebView 打开 UIWebView?
【发布时间】:2015-04-02 02:21:37
【问题描述】:

我的一个视图控制器底部有一个 Web 视图,其中包含链接。 我想要做的是,当用户单击 Web 视图中的其中一个链接时,它会打开一个 Web 视图,该视图会占据屏幕,其中包含用户单击的页面内容。或者,当用户单击 web 视图中的链接之一时,用户会被带到 safari 以显示链接的内容。 有人知道怎么做吗? 干杯。

上面是网页视图的屏幕截图,其中包含用户可以点击的链接。

【问题讨论】:

    标签: html ios xcode uiwebview


    【解决方案1】:

    您可以使用 UIWebView 的委托- webView:shouldStartLoadWithRequest:navigationType:。在加载每个 url 之前,它将调用以下委托 -

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
    

    您将能够从请求中获取请求 url 并推送新的视图控制器。

    更多详情:https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIWebViewDelegate_Protocol/index.html#//apple_ref/occ/intfm/UIWebViewDelegate/webView:shouldStartLoadWithRequest:navigationType:

    【讨论】:

      【解决方案2】:

      试试这个:

      -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
      {
          NSURL *requestURL =[ request URL ];
          if ( ( [ [ requestURL scheme ] isEqualToString: @"http" ] || [ [ requestURL scheme ] isEqualToString: @"https" ] || [ [ requestURL scheme ] isEqualToString: @"mailto" ])
              && ( navigationType == UIWebViewNavigationTypeLinkClicked ) )
          {
              return ![ [ UIApplication sharedApplication ] openURL: requestURL] ;
          }
          return YES;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-02
        相关资源
        最近更新 更多