UIWebView не сохранять куки
Я использую UIWebView, чтобы пользователи входили в учетные записи. Пользователи могут войти с учетной записью Facebook. Он нажимает кнопку Facebook и открывает UIWebView. После входа в систему UIWebView закроется, и пользователи смогут использовать вашу личную учетную запись. Но когда я закрываю свое приложение и открываю его снова, пользователи не входят в систему. UIWebView не сохранять куки. Я нашел этот ответ /questions/8052856/kuki-prinimayutsya-v-uiwebview/8052882#8052882 и добавил этот код в мое приложение. Это работает только временно. Я закрываю свое приложение и через несколько часов открываю его пользователям, не входящим в систему. Я пытался изменить эту строку
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];
к этому
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:100*12*30*60*60] forKey:NSHTTPCookieExpires];
Но это не помогло мне.
2 ответа
У меня была такая проблема. Я перепробовал много способов. Я решил использовать грязный хак:D Это мой способ:
Когда я получал NSHTTPURLResponse для Facebook (или еще), я сохраняю 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];
Файлы cookie являются временными, и они чудесным образом возвращаются при повторном запуске приложения.
вам нужно сохранить куки или учетные данные в цепочке для ключей и вернуть их после перезапуска.