我使用用户登录帐户的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];
但它对我没有帮助。
答案 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];