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://?