在 Safari 而不是 webView 上仅打开特定 URL

Posted

技术标签:

【中文标题】在 Safari 而不是 webView 上仅打开特定 URL【英文标题】:Opening Only Specific URLS on Safari instead of webView 【发布时间】:2017-03-06 09:41:54 【问题描述】:

我正在开发一个基于 Web 的应用程序,它只包含一个 webView,代码如下:

 - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
    if ((navigationType == UIWebViewNavigationTypeLinkClicked ))  
        [[UIApplication sharedApplication] openURL:[request URL]] ;

    
        HUD = [[MBProgressHUD alloc] initWithView:self.view];
        [self.view addSubview:HUD];
        // Set determinate mode
        [HUD show:YES];

        //CAPTURE USER LINK-CLICK.
        NSURL *url = [request URL];
       NSString *urls=   [url absoluteString];
        NSString *code = [urls substringFromIndex: [urls length] - 1];
        if ( [urls containsString:@".html"] && ![code isEqualToString:@"#"] ) 
          _webView.hidden= YES;
    

此代码将打开 safari 上的所有网络视图,但我只需要在 safari 上打开特定 URL 例如 : http://xxxx/residential/ 这必须在 safari 上打开,而所有其他页面应在应用程序内的 webView 上打开。 任何帮助

【问题讨论】:

【参考方案1】:

首先,您要打开应该在 Safari 而不是 UIWebView 中打开的特定 url。但是没有任何条件可以满足您的要求。

首先使用您想要的网址检查您的[request url]。如果两者都匹配,则在 SFSafariViewController 而不是 openUrl 函数中打开该 URL。在else 条件下,您可以加载您不想在Safari 中打开的[request url]

【讨论】:

以上是关于在 Safari 而不是 webView 上仅打开特定 URL的主要内容,如果未能解决你的问题,请参考以下文章

iphone应用程序,如何从HTML未录制应用程序的webview中打开safari中的链接

如何从 Web 视图打开 Safari 视图控制器(swift)

swift:如何打开 Safari 应用程序(不是其中的链接)

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

从 webview 打开应用商店?

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