清除WKWebView的緩存


清除WKWebView的緩存

OC寫法:     swift寫法再下下面。

清除WKWebView的緩存,讓H5頁面一刷新就更新至最新的頁面

 

直接上代碼~!~~

要區分iOS9.0和8.0兩種

- (void)deleteWebCache {

    

    if ([[UIDevice currentDevice].systemVersion floatValue] >= 9.0) {

        NSSet *websiteDataTypes

        = [NSSet setWithArray:@[

                                WKWebsiteDataTypeDiskCache,

                                //WKWebsiteDataTypeOfflineWebApplicationCache,

                                WKWebsiteDataTypeMemoryCache,

                                //WKWebsiteDataTypeLocalStorage,

                                //WKWebsiteDataTypeCookies,

                                //WKWebsiteDataTypeSessionStorage,

                                //WKWebsiteDataTypeIndexedDBDatabases,

                                //WKWebsiteDataTypeWebSQLDatabases

                                ]];

        //// All kinds of data

        //NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];

        //// Date from

        NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];

        //// Execute

        [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{

            // Done

        }];

 

    } else {

        

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

        NSString *cookiesFolderPath = [libraryPath stringByAppendingString:@"/Cookies"];

        NSError *errors;

        [[NSFileManager defaultManager] removeItemAtPath:cookiesFolderPath error:&errors];

        

    }

}

 

 

swift:

// MARK: - 清空緩存

    func ClearCache() {

 

        let dateFrom: NSDate = NSDate.init(timeIntervalSince1970: 0)

 

        if #available(iOS 9.0, *) {

            let websiteDataTypes: NSSet = WKWebsiteDataStore.allWebsiteDataTypes()

            WKWebsiteDataStore.defaultDataStore().removeDataOfTypes(websiteDataTypes as! Set<String>, modifiedSince: dateFrom) {

                print("清空緩存完成")

            }

        } else {

              let libraryPath = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)[0]

            let cookiesFolderPath = libraryPath.stringByAppendingString("/Cookies")

            let errors: NSError

            try? NSFileManager.defaultManager().removeItemAtPath(cookiesFolderPath)

        }

    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM