web第一次加载完毕之后,后期继续进同一个网页会从缓存中进,导致有时不能看到最新的web界面
iOS 9.0 以前清除web缓存
找出web缓存的路径 清空该路径
NSString *libraryDir = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0];
NSString *bundleId = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
NSString *webkitFolderInLib = [NSString stringWithFormat:@"%@/WebKit",libraryDir];
NSString *webKitFolderInCaches = [NSString stringWithFormat:@"%@/Caches/%@/WebKit",libraryDir,bundleId];
NSError *error;
[[NSFileManager defaultManager] removeItemAtPath:webKitFolderInCaches error:&error];
[[NSFileManager defaultManager] removeItemAtPath:webkitFolderInLib error:nil];
iOS 9.0 以后
webKit出了清除缓存的API
OC
NSSet *websiteDataTypes = [NSSet setWithArray:@[
WKWebsiteDataTypeDiskCache,
WKWebsiteDataTypeOfflineWebApplicationCache,
WKWebsiteDataTypeMemoryCache,
WKWebsiteDataTypeLocalStorage,
WKWebsiteDataTypeCookies,
WKWebsiteDataTypeSessionStorage,
WKWebsiteDataTypeIndexedDBDatabases,
WKWebsiteDataTypeWebSQLDatabases
]];
NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
[[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{
// 结束回调
}];
Swift
let websiteDataTypes :Set = [
WKWebsiteDataTypeDiskCache,
WKWebsiteDataTypeOfflineWebApplicationCache,
WKWebsiteDataTypeMemoryCache,
WKWebsiteDataTypeLocalStorage,
WKWebsiteDataTypeCookies,
WKWebsiteDataTypeSessionStorage,
WKWebsiteDataTypeIndexedDBDatabases,
WKWebsiteDataTypeWebSQLDatabases
]
let dateFrom = Date(timeIntervalSince1970: 0)
WKWebsiteDataStore.default().removeData(ofTypes: websiteDataTypes, modifiedSince: dateFrom, completionHandler: {
print("clearH5WebCache 9.0")
})
removeDataOfTypes 方法
参数1:dataTypes: 指定删除的网站数据类型
参数2:date: 在此日期之后修改的所有网站数据将被删除。
参数3:completionHandler: 当网站数据被删除时调用的block。
type:
/ * 磁盘缓存。 * /
WKWebsiteDataTypeDiskCache,
/ * 内存中的缓存 。* /
WKWebsiteDataTypeMemoryCache,
/ * HTML离线Web应用程序缓存。 * /
WKWebsiteDataTypeOfflineWebApplicationCache,
/ * Cookies 缓存。 * /
WKWebsiteDataTypeCookies,
/ * HTML会话存储。 * /
WKWebsiteDataTypeSessionStorage,
/ * HTML本地存储。 * /
WKWebsiteDataTypeLocalStorage
/ * IndexedDB数据库。 * /
WKWebsiteDataTypeIndexedDBDatabases,
/ * WebSQL数据库。 * /
WKWebsiteDataTypeWebSQLDatabases