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]; 否则你将保持拼图。