Как удалить все файлы cookie UIWebView?


В моем приложении есть UIWebview, который загружает страницу авторизации linkedin для входа в систему. Когда пользователь входит в систему, файлы cookie сохраняются в приложении.

В моем приложении есть кнопка выхода, которая не связана с LinkedIn login. Поэтому, когда пользователь нажимает на эту кнопку, он выходит из приложения. Я хочу, чтобы этот выход из системы очистил его файлы cookie linkedin также из приложения, так что пользователь полностью выйдет из системы.

3 90

3 ответа:

Согласно этому вопросу, Вы можете просмотреть каждое печенье в "банке печенья" и удалить их, например:

NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies]) {
   [storage deleteCookie:cookie];
}
[[NSUserDefaults standardUserDefaults] synchronize];

Просто хотел добавить некоторую информацию об этом.

В OS X 10.9/iOS 7 и более поздние версии можно использовать -resetWithCompletionHandler: для очистки файлов cookie и кэша и т. д. всего приложения из вашего sharedSession:

Очищает все файлы cookie, кэши и хранилища учетных данных, удаляет файлы с диска, сбрасывает текущие загрузки на диск и гарантирует, что в будущем запросы возникают на новом сокете.

[[NSURLSession sharedSession] resetWithCompletionHandler:^{
    // Do something once it's done.
}];

Цикл for-In со звуками deleteCookie: например, изменение при перечислении коллекции мне. (Не знаю, может быть, это плохая идея?)

Вы можете сделать функцию внутри html WebView, которая очищает файлы cookie.

Если вам нужно выполнить очистку только один раз, вы можете запустить эту функцию с помощью события Titanium, только когда приложение запускается.