Ios 如何删除UIWebView的所有cookie?
在我的应用程序中,我有一个Ios 如何删除UIWebView的所有cookie?,ios,iphone,objective-c,uiwebview,uiwebviewdelegate,Ios,Iphone,Objective C,Uiwebview,Uiwebviewdelegate,在我的应用程序中,我有一个UIWebview,它加载linkedin身份验证页面进行登录。当用户登录时,cookies会保存到应用程序中 我的应用程序有一个与linkedin登录无关的注销按钮。因此,当用户单击此按钮时,他将从应用程序注销。我希望这次注销也能清除应用程序中的linkedin cookie,这样用户就可以完全注销。根据,您可以查看“cookie Jar”中的每个cookie并删除它们,如下所示: NSHTTPCookieStorage *storage = [NSHTTPCooki
UIWebview
,它加载linkedin身份验证页面进行登录。当用户登录时,cookies会保存到应用程序中
我的应用程序有一个与linkedin登录无关的注销按钮。因此,当用户单击此按钮时,他将从应用程序注销。我希望这次注销也能清除应用程序中的linkedin cookie,这样用户就可以完全注销。根据,您可以查看“cookie Jar”中的每个cookie并删除它们,如下所示:
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies]) {
[storage deleteCookie:cookie];
}
[[NSUserDefaults standardUserDefaults] synchronize];
您可以在WebView的html中创建一个函数来清理cookies
如果你只需要清洁一次,你可以在应用程序启动时用钛合金事件触发此功能。只想添加一些有关此的信息 在OS X 10.9/iOS 7及更高版本中,您可以使用从
共享会话中清除整个应用程序的cookie和缓存等:
清空所有cookie、缓存和凭据存储,删除磁盘文件,
将正在进行的下载刷新到磁盘,并确保将来
请求发生在新套接字上
带有deleteCookie:
的for In-loop在我枚举集合时听起来像是在修改。(不知道,这可能是个坏主意?如果有人正在寻找快速解决方案:
let storage = HTTPCookieStorage.shared
if let cookies = storage.cookies{
for cookie in cookies {
storage.deleteCookie(cookie)
}
}
@Felipe找到了一个临时方法,如果您上次注销,需要在应用程序加载中删除Cookie。@Ishu好吧,是的,这正是我现在正在做的,但它并没有真正回答如何真正永久删除Cookie而不仅仅是当前会话的问题。它永久删除Cookie。之后发出的任何请求都可能导致重新创建Cookie。另外,如果您只想在用户注销的情况下删除cookie,那么我建议只删除会话cookie,因为注销实际上只是会话的终止。否则,您将丢失用户希望在会话间保留的潜在设置。请务必调用[[NSUserDefaults standardUserDefaults]synchronize],以确保更改保存到磁盘@felipe这就是为什么在后续运行中会看到Cookie返回。我尝试了这个方法,但存储返回0计数,我在iOS 8模拟器上测试了它。那么我如何才能在safari上删除facebook的Cookie。我使用了两种方法都成功运行了,但我仍然发现,在所有这些之后,google仍然显示了搜索历史记录(未登录)。有什么想法吗?谢谢这会影响Alamofire的任何状态以及我对后端REST API的使用吗?Alamofire的解决方案不是基于URLSession吗?
let storage = HTTPCookieStorage.shared
if let cookies = storage.cookies{
for cookie in cookies {
storage.deleteCookie(cookie)
}
}