5

我正在尝试执行以下操作:在我的 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]; 

在我的 JavaScript 中,我使用 jquery.cookie 插件来编写和读取 cookie。但什么都没有......这是我的代码:

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

警报在正文“[object Object]”中,应该有我在我的应用程序中设置的“yes”值。

大家觉得这可能吗?

谢谢!

4

1 回答 1

6

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

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

于 2013-04-23T19:07:14.230 回答