iOS9WKWebView清除缓存

自iOS8以来新出的WKWebView,大大优化了UIWebView的内存飙升问题,使得开发者迫不及待的用它来替换掉UIWebView,iOS8刚出,作者我就赶紧把项目里的webView都替换成WKWebView了,然而....当我替换完后发现...我去!WKWebView并没有清除缓存的功能,即使使用了以下代码:

NSHTTPCookie *cookie;

NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

for (cookie in [storage cookies])

{

[storage deleteCookie:cookie];

}

NSURLCache * cache = [NSURLCache sharedURLCache];

[cache removeAllCachedResponses];

[cache setDiskCapacity:0];

[cache setMemoryCapacity:0];

WKWebView内的缓存,依旧没有清除掉,该有的Cookie还有,该有测cache还是存在!弄得小编我不是一般的郁闷,google,stackoverflow, 无果,最终还是沦落版本回退的下场~~~!

然而我们等到了iOS9!!!没错!WKWebView的缓存清除API出来了!代码如下:

这是删除所有缓存和cookie的

NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];

//// Date from

NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];

//// Execute

[[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{

// Done

}];

当然,你也可以选择只删除部分

NSSet *websiteDataTypes

= [NSSet setWithArray:types];

//// All kinds of data

//NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];

//// Date from

NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];

//// Execute

[[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{

// Done

}];

types是一个数组,可以放进数组的值为:

/*

WKWebsiteDataTypeDiskCache,

WKWebsiteDataTypeOfflineWebApplicationCache,

WKWebsiteDataTypeMemoryCache,

WKWebsiteDataTypeLocalStorage,

WKWebsiteDataTypeCookies,

WKWebsiteDataTypeSessionStorage,

WKWebsiteDataTypeIndexedDBDatabases,

WKWebsiteDataTypeWebSQLDatabases

*/

这样你就可以按你自己要求清除些什么啦!

(最后PS:WKWebView清除缓存只能iOS9使用,低于iOS9运行会崩溃哦!所以,为了适配iOS7和iOS8,还是要做版本判断,相信WKWebView取代UIWebView是指日可待的!)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于iOS8之后新推出的WKWebView还是有显著的有点相对于传统的UIWebView; 但是对于一些网页的缓存...
    丂一刀阅读 19,881评论 5 4
  • UIWebView 之痛 开发App的过程中,常常会遇到在App内部加载网页,通常用UIWebView加载。而这个...
    zyl04401阅读 16,116评论 46 157
  • UIWebView 之痛 开发App的过程中,常常会遇到在App内部加载网页,通常用UIWebView加载。而这个...
    Style_mao阅读 1,466评论 1 5
  • 转载自: http://www.jianshu.com/p/90a90bd13aac WKWebView从入门到趟...
    F麦子阅读 663评论 0 3
  • 现在很多的合作关系都是你多挣一分,我少挣一分的零和谈判模式,当然也不能排除有这样“双赢谈判”模式存在的。 双赢谈判...
    王朋彦阅读 327评论 0 0