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 являются временными, и они чудесным образом возвращаются при повторном запуске приложения.

вам нужно сохранить куки или учетные данные в цепочке для ключей и вернуть их после перезапуска.

Другие вопросы по тегам