你如何清除 UIWebView 的缓存?
Posted
技术标签:
【中文标题】你如何清除 UIWebView 的缓存?【英文标题】:How do you clear a UIWebView's cache? 【发布时间】:2012-01-03 18:47:08 【问题描述】:基本上,我需要知道如何让 UIWebView 在您终止应用程序时清除所有内容。基本上,这包括 webView 通过使用而持有的所有 cookie 和信息。
有什么方法可以简单的清除它,让它每次都像新的一样?
【问题讨论】:
好问题...我正在编辑您的问题以删除 Xcode 标记和标题中的单词,因为这个问题与 IDE 完全无关,但与 ios 和 UIWebView 无关。 “当您终止应用程序时”是什么意思?什么时候移到后台? 是的,我只需要删除它跟踪的所有内容的信息 【参考方案1】:UIWebView
不缓存,它使用的是NSURLConnection
。以下任何一项曾经有效,并遵循NSURLCache
的文档:
// remove all cached responses
[[NSURLCache sharedURLCache] removeAllCachedResponses];
// set an empty cache
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
// remove the cache for a particular request
[[NSURLCache sharedURLCache] removeCachedResponseForRequest:request];
但我不确定现在是否可以(iOS 5)。其他选项使用自定义缓存:SDURLCache 或 overriding connection:withCacheResponse:。如果您发现当前行为是什么,请发表评论。
【讨论】:
第一个和第三个在你把它们扔进去时编译。但是,第二个似乎不起作用,抛出错误“initializer Element is not a compile time constant”。我不确定,但你知道如何解决这个问题吗?可能是我放错地方了? 也许这不是我所需要的。谷歌会跟踪事情,我希望清除 cookie 等会删除搜索历史等。这只是为了实验。以上是关于你如何清除 UIWebView 的缓存?的主要内容,如果未能解决你的问题,请参考以下文章