Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa touch 在iOS应用程序中持久化Cookie?_Cocoa Touch_Ios - Fatal编程技术网

Cocoa touch 在iOS应用程序中持久化Cookie?

Cocoa touch 在iOS应用程序中持久化Cookie?,cocoa-touch,ios,Cocoa Touch,Ios,我将在iOS应用程序中使用NSHTTPCookieStorage来管理从url检索的Cookie,我知道它将在应用程序运行时管理Cookie。但是,我想知道是否有可能在应用程序关闭后保留cookie。然后在应用程序再次打开时再次读取这些cookies。NSHTTPCookieStorage是否在应用程序使用之间保存cookie?或者只是在应用程序运行时?我是否需要使用CoreData保存这些cookie?`加载应用程序时,需要重新设置cookie。我使用的代码如下: NSData *cookie

我将在iOS应用程序中使用
NSHTTPCookieStorage
来管理从url检索的Cookie,我知道它将在应用程序运行时管理Cookie。但是,我想知道是否有可能在应用程序关闭后保留cookie。然后在应用程序再次打开时再次读取这些cookies。
NSHTTPCookieStorage
是否在应用程序使用之间保存cookie?或者只是在应用程序运行时?我是否需要使用
CoreData
保存这些cookie?`

加载应用程序时,需要重新设置cookie。我使用的代码如下:

NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:@"MySavedCookies"];
if([cookiesdata length]) {
    NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata];
    NSHTTPCookie *cookie;

    for (cookie in cookies) {
        [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
    }
}

它工作得很好。

你不需要像另一个答案中建议的那样自己保存cookies
NSHTTPCookieStorage
将为您保留cookie,但您需要确保cookie在服务器端设置了过期日期


没有过期日期的cookie被视为“仅会话”,并在重新启动应用程序时被清除。您可以通过
NSHTTPCookie
中的BOOL属性检查“仅会话”情况。这是标准的cookie内容,不是iOS特有的。

MySavedCookies已经存在了吗?或者当我的应用程序即将停用时,我必须存储这些信息吗?你必须自己保存它-这正是我保存我的应用程序的地方。以用户默认值存储cookie可能是一个安全缺陷,因为所有plist都可以通过iFunBox等工具访问。它们应该加密,但最好的行为是遵循@gazerese-answer。来这里是为了清晰起见,谢谢有趣的是,当应用程序重新启动时,它会被清除。您可以在桌面上重新启动Chrome,但仍有一个会话处于打开状态。+1我现在明白了为什么我的cookie不再存在:)。谢谢你帮我节省了很多时间!谢谢@gazreese我正在尝试加密iOS cordova应用程序中的cookie文件。它的工作,但只有当应用程序在前台。当我切换应用程序或按下home(主页)按钮时,会使用相同的数据创建新的cookie文件。有人能告诉我如何加密cookie文件吗?