2015-10-16 70 views
1

我正在使用大量UIWebView s的iOS应用程序。是否有办法阻止UIWebView弹出到Safari(iFrame代码),但仍然加载页面?防止UIWebView弹出到Safari,但仍然加载页面

换句话说返回YESwebView:shouldStartLoadWithRequest:navigationType:但不让网页弹出到Safari。

编辑: Web视图方有需要被执行,这就是为什么我需要返回YES过程。但是这些过程也无意中导致应用程序在Safari中启动URL。我正在寻找一种拦截方法,并选择是否在Safari中启动网址。

+0

什么是 “弹出Safari浏览器” 是什么意思?如果你返回YES,页面加载,不是吗?这不就是你说的你想要的吗? – matt

+0

Web视图端有需要执行的进程,这就是为什么我需要返回YES。但是这个过程也无意中导致应用程序在Safari中启动URL。我正在寻找一种拦截方法,并选择是否在Safari中启动网址。 – appsyoon

+0

“但是这个过程也无意中导致应用程序在Safari中启动URL”我从来没有见过这样的事情发生。如果_you_调用'openURL',Safari会启动。这些是你自己的网页吗?为什么会发生? – matt

回答

0

Apple在iOS 9上引入了Safari View Controller。Safari View Controller是一款预置的浏览器,具有Mobile Safari的所有功能,但无需离开您的应用即可展示。

首先,我们需要导入Safari浏览器服务

#import <SafariServices/SafariServices.h> 

客观C: -

NSString *yourUrl = @"http://yourURL"; 
SFSafariViewController *svc= [[SFSafariViewController alloc] initWithURL:[NSURL URLWithString: yourUrl]]; 
[self presentViewController:svc animated:YES completion:nil]; 

对于斯威夫特: -

let svc = SFSafariViewController(URL: NSURL(string: self.urlString)!) 
self.presentViewController(svc, animated: true, completion: nil)