删除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];
最后…像一个魅力工程…