3

我有一个适用于 iOS 的 PhoneGap/Corodova 项目。在 iOS 模拟器上构建时,我使用了 Jquery Cookies,它们很好。但是,现在我的设备上有应用程序进行测试,它们不再工作。我猜这只是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>
4

2 回答 2

2

为什么不使用本地存储?ios5 支持 HTML5 功能,例如 localStorage。

本地存储

于 2012-09-16T06:57:03.353 回答
1

把它放在你的应用程序委托中:

-(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+ 中正常工作

于 2014-03-23T13:30:24.113 回答