iOS - 清除Web界面的緩存

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,180評(píng)論 4 61
  • “噓~,一會(huì)進(jìn)去你不要說話.”女孩進(jìn)商場(chǎng)前,撤了撤男孩的衣角. “.....你想要什么我們就買唄。”男生沉默一會(huì)...
    卿本黑萌閱讀 262評(píng)論 0 0
  • 一、學(xué)經(jīng)匯報(bào) 學(xué)經(jīng)日期:2017年5月8日 星期一天氣:陰晴不定,間中有小雨寶貝年齡:4周歲4個(gè)月和1周歲1個(gè)月學(xué)...
    兜果媽閱讀 610評(píng)論 2 3