UIWebView不保存cookie

时间:2015-02-28 08:53:57

标签: ios cookies uiwebview save httpcookie

我使用用户登录帐户的UIWebView。用户可以使用Facebook帐户登录。他是点击按钮Facebook并打开UIWebView。登录UIWebView关闭后,用户可以使用您的个人帐户。但当我关闭我的应用程序并再次打开它时,用户无法登录。 UIWebView不保存cookie。 我找到了这个答案https://stackoverflow.com/a/26006163 并在我的应用程序中添加了此代码。这只能暂时起作用。我关闭我的应用程序,并打开几个小时再次用户不登录。 我试图改变这一行

[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];

到这个

[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:100*12*30*60*60] forKey:NSHTTPCookieExpires];

但它对我没有帮助。

2 个答案:

答案 0 :(得分:1)

Cookie是暂时的,当您重新启动应用时,它不会奇迹般地回来。

您需要将Cookie或凭据保存在钥匙串中,并在重新启动后将其取回。

答案 1 :(得分:0)

我遇到了这样的问题。我尝试了很多方法。我决定使用脏黑客:D 那是我的方式:

当我获得facebook(或其他)的NSHTTPURLResponse时,我将请求网址保存到NSUserDefaults:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
    if ([[httpResponse URL].absoluteString isEqualToString:@"http://www.simple.com/"])
    {
        [[NSUserDefaults standardUserDefaults] setURL:self.url forKey:@"urlLogin"];
        [self dismissViewController];
    }
}

当我打开我的应用程序时,我使用NSURLRequest和我存储的URL:

NSURLRequest *request = [NSURLRequest requestWithURL:[[NSUserDefaults standardUserDefaults] URLForKey:@"urlLogin"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:3.0];
[NSURLConnection connectionWithRequest:request delegate:self];