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

时间:2017-03-06 09:41:55

标签: ios objective-c webview safari

我正在开发一个基于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上的所有Web视图,但我只需要在safari上打开特定的URL 例如 :  http://xxxx/residential/这必须在safari上打开,而所有其他页面都应该在应用程序内的webView上打开。 任何帮助

1 个答案:

答案 0 :(得分:0)

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

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