SFSafariViewController允许网页访问存储在Safari中的cookie。我想用SFSafariViewController执行一些后台任务来利用cookie。但是,我不希望用户看到SFSafariViewController。
有没有一种方法可以隐藏SFSafariViewController,并允许用户在显示SFSafariViewController时触摸屏幕?
发布于 2015-12-02 16:51:50
Class SFSafariViewControllerClass = NSClassFromString(@"SFSafariViewController");
if (SFSafariViewControllerClass) {
id safController = [[SFSafariViewControllerClass alloc] initWithURL:[NSURL URLWithString:urlString]];
UIViewController *windowRootController = [[UIViewController alloc] init];
self.secondWindow = [[UIWindow alloc] initWithFrame:CGRectZero];
self.secondWindow.rootViewController = windowRootController;
[self.secondWindow makeKeyAndVisible];
[self.secondWindow setAlpha:0];
[windowRootController presentViewController:safController animated:YES completion:^{
[self.secondWindow.rootViewController dismissViewControllerAnimated:NO completion:NULL];
}];
}您可以使用代码来隐藏SFSafariViewControllerClass
发布于 2016-11-06 19:32:06
如果您计划提交到App Store,请不要这样做。
来自https://developer.apple.com/app-store/review/guidelines/
必须使用
5.1.1 (iv) SafariViewContoller以可视方式向用户显示信息;控制器不能被其他视图或层隐藏或遮挡。此外,在未经用户知情和同意的情况下,应用程序不得使用SafariViewController来跟踪用户。
如果需要访问cookies,请改用WKWebView。参见Getting all cookies from WKWebView。不过,这些cookie不会与Safari共享。
https://stackoverflow.com/questions/33089919
复制相似问题