我正在尝试执行以下操作:在我的 appDelegate 中,我正在设置一个 cookie。之后,我尝试使用来自网络应用程序的 JavaScript 读取该 cookie。这可能吗?因为我不能让它工作...
这是我在 iOS 应用程序中的代码:
NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
[cookieProperties setObject:@"test" forKey:NSHTTPCookieName];
[cookieProperties setObject:@"yes" forKey:NSHTTPCookieValue];
[cookieProperties setObject:self.siteURL forKey:NSHTTPCookieDomain];
[cookieProperties setObject:self.siteURL forKey:NSHTTPCookieOriginURL];
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:9629743] forKey:NSHTTPCookieExpires];
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
在我的 JavaScript 中,我使用 jquery.cookie 插件来写入和读取 cookie。但是什么都没有...这是我的代码:
cookieValue = $.cookie("test");
alert(cookieValue);
警报在正文“[object Object]”中,应该有我在我的应用程序中设置的“yes”值。
大家觉得这可行吗?
谢谢!
最佳答案
不可能:第三方应用程序无法访问全局 Safari cookie 缓存,因为这将是一个重大的安全漏洞。如果您需要向 Safari 发送 cookie 信息,您最好在 Safari 中启动一个 URL,并将 cookie 详细信息作为请求参数,然后让该 URL 末尾的脚本创建 cookie 并将它们发回。
编辑:如果你想要圆滑,你可以为你的 iOS 应用程序注册一个 URL 处理程序,然后将 URL 启动到你的网络应用程序。让您的网络应用程序设置 cookie,然后重定向回应用程序 URL。
关于javascript - 在 iOS 应用程序中设置 cookie 并从 Safari 读取该 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16177066/