我正在使用Ionic Framework构建应用程序。我的应用程序需要登录。

问题是在iOS上,每当用户强制退出应用程序时,会话都会丢失,因此用户必须再次登录。

在这种情况下,如何保存会话?

(相同的会话逻辑适用于Android应用程序,并且运行良好,因此我认为它与iOS中的强制退出有关)

最佳答案

AppDelegate.m中添加以下代码后,我能够保留会话

- (void)applicationWillTerminate:(UIApplication *)application
{
   NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
    NSData *cookieData = [NSKeyedArchiver archivedDataWithRootObject:cookies];
    [[NSUserDefaults standardUserDefaults] setObject:cookieData forKey:@"Cookies"];
}

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
    NSData *cookiesData = [[NSUserDefaults standardUserDefaults] objectForKey:@"Cookies"];
    if ( [cookiesData length] )
    {
        NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesData];
        for ( NSHTTPCookie *cookie in cookies )
            [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
    }
}

09-10 06:23