PhoneGap/Cordova:如何使用 cookie (iOS)?

Posted

技术标签:

【中文标题】PhoneGap/Cordova:如何使用 cookie (iOS)?【英文标题】:PhoneGap/Cordova: How to get use cookies (iOS)? 【发布时间】:2012-06-27 05:58:32 【问题描述】:

我有一个适用于 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>

【问题讨论】:

试试这个设置,可能有用 - groups.google.com/forum/?fromgroups#!topic/phonegap/ZJE1nxX63ow 我也有同样的问题。我正在尝试通过 AJAX 调用设置 cookie,而在 PhoneGap 2.0 中,NSHTTPCookieStorage 设置已经在 AppDelegate.m 中......但无济于事,iOS6 不会从我的 .NET MVC3 应用程序中设置 cookie。跨度> 【参考方案1】:

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

localStorage

【讨论】:

谢谢!这就是我最终做的事情,虽然我不确定这是否是最好的方式,因为本地存储应该被 W3C 终止 localStorage不会停产,是sql数据库会停产。但即使该规范从 html5 中删除,浏览器也可能会在之后继续支持它。 WebSQL 规范没有被进一步开发的唯一原因是每个人都意外地在嵌入式 SQLite 上标准化了,所以进一步推动标准是不切实际的......它不应该去任何地方。 【参考方案2】:

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

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

【讨论】:

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

以上是关于PhoneGap/Cordova:如何使用 cookie (iOS)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在启动时更改 phonegap/cordova 状态栏背景(启动画面)?

如何通过绝对路径访问我的应用程序文件 - windows phone - Phonegap/Cordova

如何确保 Android phonegap/cordova 应用程序使用 Chrome webviews?

基于 Swift 项目的 PhoneGap/Cordova App

如何通过android应用程序(使用phonegap/cordova创建)在对服务器进行休息调用时删除原点:file://?

使用 Phonegap/Cordova JS 应用程序和 MS ADAL JS。如何在真实手机中重定向 URI?