前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈iOS中WKWebView和UIWebView的清除缓存问题

浅谈iOS中WKWebView和UIWebView的清除缓存问题

作者头像
用户1451823
发布2018-09-13 15:42:13
5.2K0
发布2018-09-13 15:42:13
举报
文章被收录于专栏:DannyHoo的专栏DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337777

最近产品经理在验收项目,在验收过程中发现了一个问题:网页中的数据存在缓存。

网页中加载的是一张图片,在后台将加载的图片换掉的时候再在App中加载此网页,发现展示的图片还是之前的图片,并没有更新,而且多次重新加载网页显示的还是之前的图片,说明缓存很严重。于是查阅资料进行缓存的清除。

先说说UIWebView中缓存的清除,代码只有一句:

 [NSURLCachesharedURLCacheremoveAllCachedResponses];

再说WKWebView中缓存的清除:

NSArray * types =@WKWebsiteDataTypeMemoryCache,WKWebsiteDataTypeDiskCache;

NSSet *websiteDataTypes = NSSetsetWithArray:types;

NSDate *dateFrom = NSDatedateWithTimeIntervalSince1970:0;

   [WKWebsiteDataStoredefaultDataStoreremoveDataOfTypes:websiteDataTypesmodifiedSince:dateFromcompletionHandler:^{

    }];

其中types数组中的内容是可以选择的一些类型,还是选择清除cookie。

注意:只有在iOS9之后WKWebView才有清除缓存的方法,在写代码的时候切记对系统版本进行判断。

    }];

if ([[UIDevicecurrentDevicesystemVersion]intValue ] >8) {

NSArray * types =@WKWebsiteDataTypeMemoryCache,WKWebsiteDataTypeDiskCache; // 9.0之后才有的 

NSSet *websiteDataTypes = NSSetsetWithArray:types;

NSDate *dateFrom = NSDatedateWithTimeIntervalSince1970:0;

        [WKWebsiteDataStoredefaultDataStoreremoveDataOfTypes:websiteDataTypesmodifiedSince:dateFromcompletionHandler:^{

        }];

    }else{

NSString *libraryPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES) objectAtIndex:0;

NSString *cookiesFolderPath = libraryPathstringByAppendingString:@"/Cookies";

NSLog(@"%@", cookiesFolderPath);

NSError *errors;

        [NSFileManagerdefaultManagerremoveItemAtPath:cookiesFolderPatherror:&errors];

    }

增加内容:

使用UIWebView加载页面的时候最理想的情况是:资源文件没有更新,就只加载缓存文件,如果有更新就第一时间使用新的文件。

我们可以使用一个类来实现,这个类也是我在网上找的,类名:

JWNetAutoCache,大家也可以点进去看这个类实现该效果的一个思路。

增加内容:

在iOS8上还会导致崩溃的代码:

/*

导致iOS8奔溃的代码

     */

self.webView.allowsBackForwardNavigationGestures = YES;

self.webView.allowsBackForwardNavigationGestures = NO;

这是属性表示是否开启网页左、右滑前进倒退。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年12月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档