iOS9WKWebView清除緩存

自iOS8以來新出的WKWebView,大大優化了UIWebView的內存飆升問題,使得開發者迫不及待的用它來替換掉UIWebView,iOS8剛出,作者我就趕緊把項目里的webView都替換成WKWebView了,然而....當我替換完后發現...我去!WKWebView并沒有清除緩存的功能,即使使用了以下代碼:

NSHTTPCookie *cookie;

NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

for (cookie in [storage cookies])

{

[storage deleteCookie:cookie];

}

NSURLCache * cache = [NSURLCache sharedURLCache];

[cache removeAllCachedResponses];

[cache setDiskCapacity:0];

[cache setMemoryCapacity:0];

WKWebView內的緩存,依舊沒有清除掉,該有的Cookie還有,該有測cache還是存在!弄得小編我不是一般的郁悶,google,stackoverflow, 無果,最終還是淪落版本回退的下場~~~!

然而我們等到了iOS9!!!沒錯!WKWebView的緩存清除API出來了!代碼如下:

這是刪除所有緩存和cookie的

NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];

//// Date from

NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];

//// Execute

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

// Done

}];

當然,你也可以選擇只刪除部分

NSSet *websiteDataTypes

= [NSSet setWithArray:types];

//// All kinds of data

//NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];

//// Date from

NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];

//// Execute

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

// Done

}];

types是一個數組,可以放進數組的值為:

/*

WKWebsiteDataTypeDiskCache,

WKWebsiteDataTypeOfflineWebApplicationCache,

WKWebsiteDataTypeMemoryCache,

WKWebsiteDataTypeLocalStorage,

WKWebsiteDataTypeCookies,

WKWebsiteDataTypeSessionStorage,

WKWebsiteDataTypeIndexedDBDatabases,

WKWebsiteDataTypeWebSQLDatabases

*/

這樣你就可以按你自己要求清除些什么啦!

(最后PS:WKWebView清除緩存只能iOS9使用,低于iOS9運行會崩潰哦!所以,為了適配iOS7和iOS8,還是要做版本判斷,相信WKWebView取代UIWebView是指日可待的!)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 對于iOS8之后新推出的WKWebView還是有顯著的有點相對于傳統的UIWebView; 但是對于一些網頁的緩存...
    丂一刀閱讀 19,856評論 5 4
  • UIWebView 之痛 開發App的過程中,常常會遇到在App內部加載網頁,通常用UIWebView加載。而這個...
    zyl04401閱讀 16,076評論 46 157
  • UIWebView 之痛 開發App的過程中,常常會遇到在App內部加載網頁,通常用UIWebView加載。而這個...
    Style_mao閱讀 1,448評論 1 5
  • 轉載自: http://www.lxweimin.com/p/90a90bd13aac WKWebView從入門到趟...
    F麥子閱讀 662評論 0 3
  • 現在很多的合作關系都是你多掙一分,我少掙一分的零和談判模式,當然也不能排除有這樣“雙贏談判”模式存在的。 雙贏談判...
    王朋彥閱讀 323評論 0 0