web第一次加載完畢之后,后期繼續(xù)進(jìn)同一個(gè)網(wǎng)頁會(huì)從緩存中進(jìn),導(dǎo)致有時(shí)不能看到最新的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:^{
// 結(jié)束回調(diào)
}];
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 方法
參數(shù)1:dataTypes: 指定刪除的網(wǎng)站數(shù)據(jù)類型
參數(shù)2:date: 在此日期之后修改的所有網(wǎng)站數(shù)據(jù)將被刪除。
參數(shù)3:completionHandler: 當(dāng)網(wǎng)站數(shù)據(jù)被刪除時(shí)調(diào)用的block。
type:
/ * 磁盤緩存。 * /
WKWebsiteDataTypeDiskCache,
/ * 內(nèi)存中的緩存 。* /
WKWebsiteDataTypeMemoryCache,
/ * HTML離線Web應(yīng)用程序緩存。 * /
WKWebsiteDataTypeOfflineWebApplicationCache,
/ * Cookies 緩存。 * /
WKWebsiteDataTypeCookies,
/ * HTML會(huì)話存儲(chǔ)。 * /
WKWebsiteDataTypeSessionStorage,
/ * HTML本地存儲(chǔ)。 * /
WKWebsiteDataTypeLocalStorage
/ * IndexedDB數(shù)據(jù)庫。 * /
WKWebsiteDataTypeIndexedDBDatabases,
/ * WebSQL數(shù)據(jù)庫。 * /
WKWebsiteDataTypeWebSQLDatabases