私のアプリケーションには、ログイン用にlinkedin認証ページをロードするUIWebview
があります。ユーザーがログインすると、Cookieがアプリケーションに保存されます。
私のアプリには、linkedinログインに関連しないログアウトボタンがあります。したがって、ユーザーがこのボタンをクリックすると、アプリからログオフします。ユーザーが完全にログアウトできるように、このログオフでアプリからもリンクインCookieがクリアされるようにします。
この質問 によると、次のように「Cookie Jar」の各Cookieを調べて削除できます。
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:
は、コレクションを列挙している間にmodifyingのように聞こえます。 (わからない、悪い考えかもしれない?)
WebViewのhtml内で、Cookieを消去する関数を作成できます。
クリーニングを1回だけ行う必要がある場合は、Titaniumイベントで、アプリの起動時にのみこの機能をトリガーできます。
Swift Solution:
let storage = HTTPCookieStorage.shared
if let cookies = storage.cookies{
for cookie in cookies {
storage.deleteCookie(cookie)
}
}