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

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

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

Ответ 1

Согласно этот вопрос, вы можете пройти через каждый файл cookie в "Cookie Jar" и удалить их, например:

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

Ответ 2

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

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

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

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

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

Ответ 3

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

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

Ответ 4

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

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