如何删除UIWebView的所有cookie?

Vai*_*ran 91 iphone objective-c uiwebview ios uiwebviewdelegate

在我的应用程序中,我有一个UIWebview加载linkedin auth页面登录.当用户登录时,cookie会保存到应用程序中.

我的应用程序有一个与linkedin登录无关的注销按钮.因此,当用户点击此按钮时,他会从应用程序中注销.我希望这个注销将从应用程序中清除他的linkedin cookie,以便用户完全注销.

Ser*_*ura 209

根据这个问题,您可以浏览"Cookie Jar"中的每个cookie并删除它们,如下所示:

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

  • 务必调用[[NSUserDefaults standardUserDefaults] synchronize]以确保更改保存到磁盘.@felipe这就是为什么你看到cookie在后续运行中返回的原因. (18认同)

Cai*_*Cai 8

只是想添加一些关于此的信息.

OS X 10.9/iOS 7及更高版本中,您可以使用-resetWithCompletionHandler:从以下位置清除整个应用程序的cookie和缓存等sharedSession:

清空所有cookie,缓存和凭证存储,删除磁盘文件,将正在进行的下载刷新到磁盘,并确保将来的请求发生在新套接字上.

[[NSURLSession sharedSession] resetWithCompletionHandler:^{
    // Do something once it's done.
}];
Run Code Online (Sandbox Code Playgroud)

for-in循环deleteCookie:喜欢的声音,同时枚举集合修改给我.(不知道,可能是个坏主意?)