在iOS应用中设置cookie并从Safari中读取该cookie

And*_*res 5 javascript safari objective-c nshttpcookie

我正在尝试执行以下操作:在我的appDelegate中,我正在设置cookie.之后,我正在尝试使用来自webapp的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]; 
Run Code Online (Sandbox Code Playgroud)

在我的JavaScript中,我使用jquery.cookie插件来编写和阅读cookie.但没有任何东西......这是我的代码:

cookieValue = $.cookie("test");
alert(cookieValue);
Run Code Online (Sandbox Code Playgroud)

警报在正文中有"[object Object]",并且应该在我的应用程序中设置"是"值.

你们觉得这有可能吗?

谢谢!

Fem*_*emi 6

不可能:第三方应用程序无法访问全局Safari cookie缓存,因为这将是一个重大的安全漏洞.如果您需要向Safari发送cookie信息,最好在Safari中使用cookie详细信息作为请求参数启动URL,然后在该URL末尾创建脚本并创建cookie并将其发回.

编辑:如果你想光滑,你可以为你的iOS应用注册一个URL处理程序,然后启动你的网络应用程序的URL.让您的网络应用设置Cookie,然后重定向回应用网址.