Отключение или удаление файлов cookie в WebView без ущерба для других приложений - PullRequest
3 голосов
/ 19 августа 2011

Я работаю над проблемой в моем приложении Mac OSX 10.5, которая требует удаления файлов cookie при выходе пользователя из приложения, чтобы другой пользователь мог выполнить вход без необходимости выхода из приложения. Когда пользователь проходит аутентификацию в первый раз, WebView получает и кэширует 5 файлов cookie, используя класс хранения одноэлементных файлов cookie NSHTTPCookieStorage. Когда я пытаюсь получить куки, используя метод [NSHTTPCookieStorage cookiesForURL:], я получаю только 4. Это означает, что 5-й связан с другим URL-адресом. Я не могу использовать домен для идентификации файлов cookie, поскольку могу удалить файлы cookie, используемые другими приложениями. Я думаю по следующим направлениям:

  1. Отключить куки для WebView при загрузке URL.
    • Я пытался использовать [NSMutableURLRequest setHTTPShouldHandleCookies: НЕТ], но это не помогло. И я не могу изменить политику использования файлов cookie с помощью NSHTTPCookieStorage, поскольку это повлияет на другие приложения.
  2. Получите куки для URL, который я загружаю
    • Я не знаю, возможно ли это. Я искал все методы делегата, доступные для WebView, но ничего не нашел
  3. Обновите URL-адрес заново, используя метод экземпляра [WebFrame reloadFromOrigin].
    • доступно только для Mac OSX> = 10,6
  4. Воссоздать экземпляр WebView.
    • не помогло, куки все еще сохраняются

Я также пробовал разные варианты, предоставляемые классом WebPreferences, но это не помогло. Заранее спасибо за любые подсказки, чтобы исправить эту проблему.

1 Ответ

1 голос
/ 22 августа 2011

Хотите поделиться файлами cookie с Safari? Если нет (и я полагаю, что нет), то посмотрите на IGIsolatedCookieWebView , чтобы найти пример того, как создать свой собственный частный магазин cookie в webkit.

Если вы хотите поделиться файлами cookie с Safari, вам необходимо отслеживать и затем удалять соответствующие файлы cookie в соответствующее время, используя NSHTTPCookieStorage.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...