我有一个适用于iOS的PhoneGap/Corodova项目。在iOS模拟器上构建时,我使用了Jquery Cookie,它们很好。但是,现在我的设备上有该应用程序进行测试,它们不再工作。我猜这只是iOS不支持的东西。
有谁知道为iOS做客户端cookie的方法?
PS:我当前的cookie代码(以防万一有用):
<script type="text/javascript" charset="utf-8" src="js/jquery.cookie.js"></script>
<!--STARTUP SCREEN COOKIE SETTER-->
<script type="text/javascript">
$(function() {
var cookiedate = new Date();
cookiedate.setTime(cookiedate.getTime() + (60 * 60 * 1000));
$.cookie("startupscreen", "checked", { expires: cookiedate, path: '/' })
});
</script>
为什么不使用localStorage? ios5支持HTML5功能,如localStorage。
本地存储
把它放在你的应用程序委托中:
-(void)applicationDidEnterBackground:(UIApplication *)application{
NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject:[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]];
[[NSUserDefaults standardUserDefaults] setObject:cookiesData
forKey:@"xapp"];
}
and in (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:
(NSDictionary*)launchOptions
// Restore cookies
NSData *cookiesData = [[NSUserDefaults standardUserDefaults] objectForKey:@"xapp"];
if (cookiesData) {
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesData];
for (NSHTTPCookie *cookie in cookies)
{ [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; }
}
这使得 cookie 在 Cordova 3.4.x 和 ios6+ 中像往常一样工作