PhoneGap/Cordova: 如何使用cookies获取iOS?

3
我有一个针对iOS的PhoneGap/Corodova项目。在iOS模拟器上构建时,我使用了Jquery Cookies,它们很好用。然而,现在我已经将应用程序放到我的设备上进行测试,但它们不再起作用了。我猜这只是iOS不支持的一些东西。
有人知道如何在iOS上做客户端Cookies吗?
PS:我的当前Cookies代码(以防有用):
<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>

尝试这些设置,可能会起作用 - https://groups.google.com/forum/?fromgroups#!topic/phonegap/ZJE1nxX63ow - dhaval
我有同样的问题。我正在尝试从AJAX调用中设置cookie,而在PhoneGap 2.0中,NSHTTPCookieStorage设置已经在AppDelegate.m中...但是iOS6无法从我的.NET MVC3应用程序设置cookie,尽管我已经尝试了很多方法。 - sonjz
2个回答

2

为什么不使用localStorage?ios5支持HTML5功能,如localStorage。

localStorage


谢谢!这就是我最终采取的方法,但我不确定这是否是最佳方式,因为W3C将停止使用本地存储。 - MeltingDog
本地存储将不会被停用,而是 SQL 数据库将被停用。但即使规范从 HTML5 中删除,浏览器可能仍然会继续支持它。 - weexpectedTHIS
WebSQL标准不再得到发展的唯一原因是大家意外地将嵌入式SQLite作为标准,所以推进标准没有意义……它不应该继续存在。 - XML

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]; }

    }

这使得在 Cordova 3.4.x 和 ios6+ 中,cookie 可以像往常一样工作。

代码可以通过缩进四个空格来格式化(您可以选择并使用“{}”按钮作为快捷方式)。 - McDowell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接