据我所知,从iOS9开始,您应该能够使用SFSafariViewController读取cookies。
如果我用JS在我的页面上设置了一个cookie,如下所示:
var dd = new Date(Date.now() + 1000 * 60 * 60 * 24).toGMTString();
var expires = "expires="+ dd;
document.cookie = "mycookie=cookievalue; " + expires + " domain=.mydomain.co.uk ; path=/ ";如果我这样做了:
- (void)safariViewController:(SFSafariViewController *)controller didCompleteInitialLoad:(BOOL)didLoadSuccessfully
{
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookiesArray = [storage cookies];
}cookiesArray始终为空。
如果我使用传统的UIWebView
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookiesArray = [storage cookies];
}我得到了我想要的曲奇。
你知道我做错了什么吗?
发布于 2016-12-19 23:53:04
SFSafariViewController基本上是一个Safari进程,在你的应用程序之外运行。您的应用程序将无法访问SFSafariViewController使用的cookies,正如您的应用程序无法访问Safari应用程序本身中的cookies一样。
如果你需要这个功能,你需要坚持使用UIWebView或WKWebView。
https://stackoverflow.com/questions/41226012
复制相似问题