【问题标题】:How do you clear a UIWebView's cache?你如何清除 UIWebView 的缓存?
【发布时间】:2012-01-03 18:47:08
【问题描述】:

基本上,我需要知道如何让 UIWebView 在您终止应用程序时清除所有内容。基本上,这包括 webView 通过使用而持有的所有 cookie 和信息。

有什么方法可以简单的清除它,让它每次都像新的一样?

【问题讨论】:

  • 好问题...我正在编辑您的问题以删除 Xcode 标记和标题中的单词,因为这个问题与 IDE 完全无关,但与 iOS 和 UIWebView 无关。
  • “当您终止应用程序时”是什么意思?什么时候移到后台?
  • 是的,我只需要删除它跟踪的所有内容的信息

标签: iphone ios cocoa-touch 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)。其他选项使用自定义缓存:SDURLCacheoverriding connection:withCacheResponse:。如果您发现当前行为是什么,请发表评论。

【讨论】:

  • 第一个和第三个在你把它们扔进去时编译。但是,第二个似乎不起作用,抛出错误“initializer Element is not a compile time constant”。我不确定,但你知道如何解决这个问题吗?可能是我放错地方了?
  • 也许这不是我所需要的。谷歌会跟踪事情,我希望清除 cookie 等会删除搜索历史等。这只是为了实验。
猜你喜欢
  • 2013-02-09
  • 2011-02-01
  • 2011-07-25
  • 2013-04-16
  • 2013-07-24
  • 2011-11-16
  • 2013-09-09
  • 1970-01-01
相关资源
最近更新 更多