iOS9 WKWebView清除缓存方法

13 篇文章 2 订阅

自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还是存在!无果,最终还是沦落使用UIWebView的下场~~~!

然而我们等到了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是指日可待的!)

转自:http://www.jianshu.com/p/186a3b236bc9

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值