2013-04-23 294 views
5

我正在尝试执行以下操作:在我的appDelegate中设置cookie。之后,我试图从webapp中使用JavaScript读取该cookie。这可能吗?因为我不能让它工作...在iOS应用程序中设置Cookie并从Safari中读取该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插件。但是,无所不有。这是我的代码:

cookieValue = $.cookie("test"); 
alert(cookieValue); 

警报在体内“的翻译:”有应该是“是”值我在我的应用程序设置。

你们认为这是可能的吗?

谢谢!

回答

6

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

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

相关问题