iOS UIWebView清除缓存,解决H5页面不能刷新数据
最近在做一个项目,用户在个人中心修改了个人信息之后,回到H5页面,重新加载H5页面,H5页面的用户信息并没有刷新,要退出APP之后,再点击进入H5页面,数据才会刷新。后面才发现UIWebView自带缓存。后面查找相关资料,说用这种加载方式可以解决:
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:5.0];
然后满怀期待的Command + R,修改用户信息,打开H5页面,尼玛,并没有什么卵用。
后面找到了下面这种方法,完美解决。在H5页面即将消失的时候,清除缓存和Cookie
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self cleanCacheAndCookie];
}
/**清除缓存和cookie*/
- (void)cleanCacheAndCookie
{
//清除cookies
NSHTTPCookie *cookie;
NSHTTPCookieStorage *CookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for(cookie in [CookieStorage cookies]){
[CookieStorage deleteCookie:cookie];
}
//清除UIWebView的缓存
[[NSURLCache sharedURLCache] removeAllCachedResponses];
NSURLCache * cache = [NSURLCache sharedURLCache];
[cache removeAllCachedResponses];
[cache setDiskCapacity:0];
[cache setMemoryCapacity:0];
}