UIWebView中的Cookie
我有一个UIWebView,我不希望它存储一个cookie,所以就在webview加载之前,我做:
NSArray* cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; for (NSHTTPCookie *cookie in cookies) { [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; }
检查cookie的数量是0,因此它们全部被删除。 但是,当我去到stackoverflow它仍然承认我的Google帐户,并login我。这是怎么发生的? 我虽然它与cookies?
我必须处理完全相同的问题,并find了解决这个问题的两种方法。 我首先注意到,cookies(有时)被设置在奇怪的时间(奇怪的行为尤其是与ios 4.0)。
- 用户在webview上后即时删除cookies往往没有得到预期的结果。
然后,我在“注销”(又名清除所有cookie /删除其他用户数据)操作中集成了一个持久的手动标志,该标志被设置为True。 在下一次login(也就是基于用户login的操作)时,我再次清除了cookie(就像你在代码中那样)。
后来我发现,那听着NSHTTPCookieManagerCookiesChangedNotification
,然后删除cookies工作真的很好。
希望我能帮上忙。
尝试更改Cookie接受政策,而不是:
[NSHTTPCookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyNever];
使用以下,它将工作..
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; NSHTTPCookie *cookie; for(cookie in [storage cookies]) { NSLog(@"cookie to be deleted:%@", cookie); [storage deleteCookie:cookie]; } [[NSUserDefaults standardUserDefaults] synchronize];
这里不要错过最后一行[[NSUserDefaults standardUserDefaults] synchronize]; 否则你将保持拼图。