Как удалить все куки из UIWebView? - PullRequest
91 голосов
/ 17 декабря 2010

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

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

Ответы [ 4 ]

209 голосов
/ 17 декабря 2010

Согласно этому вопросу , вы можете просмотреть каждый файл cookie в «Банке с cookie» и удалить их следующим образом:

NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies]) {
   [storage deleteCookie:cookie];
}
[[NSUserDefaults standardUserDefaults] synchronize];
8 голосов
/ 05 апреля 2016

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

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

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

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

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

1 голос
/ 21 апреля 2012

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

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

0 голосов
/ 27 июня 2019

Если кто-то ищет Swift Solution:

    let storage = HTTPCookieStorage.shared
    if let cookies = storage.cookies{
        for cookie in cookies {
             storage.deleteCookie(cookie)
        }
    }
...