阻止UIWebView弹出到Safari,但仍然加载页面

时间:2015-10-16 16:57:28

标签: ios objective-c cocoa-touch uiwebview

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

换句话说,在YES中返回webView:shouldStartLoadWithRequest:navigationType:,但不要让网页弹出到Safari。

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

1 个答案:

答案 0 :(得分: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)