根据苹果文档:
... cookie 在所有应用程序之间共享,并跨进程边界保持同步。
但是有这个iOS 注意:
Cookie 不会在 iOS 中的应用程序之间共享。
所以基本上我不能在我的应用程序中使用来自 Safari 的 cookie?
根据苹果文档:
... cookie 在所有应用程序之间共享,并跨进程边界保持同步。
但是有这个iOS 注意:
Cookie 不会在 iOS 中的应用程序之间共享。
所以基本上我不能在我的应用程序中使用来自 Safari 的 cookie?
iOS 安全沙盒禁用应用程序之间的 cookie 共享,WKWebView
正如您在 iOS 注释中发现的那样,并且没有办法解决这个问题。您可以WKWebView
利用WKProcessPool
.
有一种方法可以将 cookie 数据从 Safari 传递到您的应用程序,方法是将SFSafariViewController
(iOS 8 及更低版本,您需要切换到 Safari)与自定义 URL 方案相结合。
这种方法的基本原理是:
SFSafariViewController
使用(或[[UIApplication sharedApplication] openURL:url]
为 iOS8 及更低版本启动 Safari)加载 Safari 视图控制器url
将尝试加载您的自定义 URL 方案并传递 cookie 数据,即my-custom-scheme:cookie=value
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
然而,用户将看到 Safari 视图控制器弹出然后关闭(或在 iOS8 及更低版本的应用程序之间切换)。没有这样做的静默方式(额外:有一些方法可以强制主窗口高于SFSafariViewController
但Apple不支持)。