删除cookies UIWebView

如何删除UIWebView中的cookie? 此代码:

NSArray* cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; for (NSHTTPCookie *cookie in cookies) { [cookies deleteCookie:cookie]; } 

删除cookies,但是当我重新启动我的应用程序时,NSHTTPCookieStorage中有相同的cookie。 有时这个代码有效,但是我想每次都使它工作。如何解决这个问题?

尝试这样的事情:

 NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; NSArray* facebookCookies = [cookies cookiesForURL: [NSURL URLWithString:@"http://login.facebook.com"]]; for (NSHTTPCookie* cookie in facebookCookies) { [cookies deleteCookie:cookie]; } 

这对我工作:

 NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; NSArray *allCookies = [cookies cookies]; for(NSHTTPCookie *cookie in allCookies) { if([[cookie domain] rangeOfString:@"facebook.com"].location != NSNotFound) { [cookies deleteCookie:cookie]; } } 

删除一个cookie并不总是有一些奇怪的原因。 要真正得到一个cookie删除,你将需要存储不具体的cookie,然后重新加载它们,然后遍历所有的cookie,并删除它们,如这样

 NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; if (cookies != nil && cookies.count > 0) { for (NSHTTPCookie *cookie in cookies) { [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; } [[NSUserDefaults standardUserDefaults] synchronize]; } 

前一个类似,但更简单:

 NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; NSArray *allCookies = [cookies cookies]; for(NSHTTPCookie *cookie in allCookies) { if([[cookie domain] contains:@"facebook.com"]) { [cookies deleteCookie:cookie]; } } 

“最佳答案”是不好的,因为它允许删除指定具体URL的Cookie。 所以,例如你删除了“login.facebook.com”的cookie,但你可能会错过“www.login.facebook.com”

请务必致电:

[[NSUserDefaults standardUserDefaults] synchronize];

最后…像一个魅力工程…