UIWebView 不保存 cookie
UIWebView not save cookies
我使用用户登录帐户的UIWebView。用户可以使用 facebook 帐户登录。他正在单击 Facebook 按钮并打开 UIWebView。登录 UIWebView 后关闭,用户可以使用您的个人帐户。但是当我关闭我的应用程序并再次打开它时,用户无法登录。 UIWebView 不保存cookies。
我找到了这个答案
并在我的应用程序中添加了这段代码。这只是暂时有效。我关闭了我的应用程序并在数小时内再次打开它,用户无法登录。
我试图改变这一行
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];
到这个
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:100*12*30*60*60] forKey:NSHTTPCookieExpires];
但这对我没有帮助。
Cookie 是临时的,当您重新启动应用程序时它会奇迹般地恢复。
您需要将 cookie 或凭据保存在钥匙串中,并在重新启动后取回。
我遇到过这样的问题。我尝试了很多方法。我决定使用肮脏的 hack :D
这就是我的方式:
当我为 facebook(或其他)获取 NSHTTPURLResponse 时,我将请求 url 保存到 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];
我使用用户登录帐户的UIWebView。用户可以使用 facebook 帐户登录。他正在单击 Facebook 按钮并打开 UIWebView。登录 UIWebView 后关闭,用户可以使用您的个人帐户。但是当我关闭我的应用程序并再次打开它时,用户无法登录。 UIWebView 不保存cookies。 我找到了这个答案 并在我的应用程序中添加了这段代码。这只是暂时有效。我关闭了我的应用程序并在数小时内再次打开它,用户无法登录。 我试图改变这一行
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];
到这个
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:100*12*30*60*60] forKey:NSHTTPCookieExpires];
但这对我没有帮助。
Cookie 是临时的,当您重新启动应用程序时它会奇迹般地恢复。
您需要将 cookie 或凭据保存在钥匙串中,并在重新启动后取回。
我遇到过这样的问题。我尝试了很多方法。我决定使用肮脏的 hack :D 这就是我的方式:
当我为 facebook(或其他)获取 NSHTTPURLResponse 时,我将请求 url 保存到 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];