自ios8以來新出的wkwebview,大大優化了uiwebview的記憶體飆公升問題,使得開發者迫不及待的用它來替換掉uiwebview,ios8剛出,作者我就趕緊把專案裡的webview都替換成wkwebview了,然而....當我替換完後發現...我去!wkwebview並沒有清除快取的功能,即使使用了以下**:
wkwebview內的快取,依舊沒有清除掉,該有的cookie還有,該有測cache還是存在!無果,最終還是淪落使用uiwebview的下場~~~!
然而我們等到了ios9!!!沒錯!wkwebview的快取清除api出來了!**如下:
這是刪除所有快取和cookie的
nsset *websitedatatypes = [wkwebsitedatastore allwebsitedatatypes];
date from
nsdate *datefrom = [nsdate datewithtimeintervalsince1970:0];
execute
[[wkwebsitedatastore defaultdatastore] removedataoftypes:websitedatatypes modifiedsince:datefrom completionhandler:^];
當然,你也可以選擇只刪除部分
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:^];
types是乙個陣列,可以放進陣列的值為:
/*
wkwebsitedatatypediskcache,
wkwebsitedatatypememorycache,
wkwebsitedatatypelocalstorage,
wkwebsitedatatypecookies,
wkwebsitedatatypesessionstorage,
wkwebsitedatatypeindexeddbdatabases,
wkwebsitedatatypewebsqldatabases
*/
這樣你就可以按你自己要求清除些什麼啦!
(最後ps:wkwebview清除快取只能ios9使用,低於ios9執行會崩潰哦!所以,為了適配ios7和ios8,還是要做版本判斷,相信wkwebview取代uiwebview是指日可待的!)
**:
WKWebView 清除快取的方法
概述 ios7.0只有uiwebview,而ios8.0是有wkwebview,但8.0的wkwebview沒有刪除快取方法。ios9.0之後就開始支援啦。所以使用時候一定要適配ios9.0以上 適用場景 當我們的前端修改網頁上的某一些標籤或增加內容時候,需要最新的頁面,然而wk本身的快取機制會把網...
iOS開發 WKWebView快取清理
wkwebview清除快取只能ios9使用,低於ios9執行會崩潰哦!所以,為了適配ios7和ios8,還是要做版本判斷 if uidevice currentdevice systemversion intvalue 9.0 nsarray types wkwebsitedatatypememor...
iOS 開發 WKWebView快取處理的問題
wkwebview使用中遇到的問題 1.關於快取的問題 因為使用了wkwebview,後端的策劃人員換圖,ios端沒有更新,然後google了好久,最終算是解決了這個問題。首先,載入第乙個頁面。urlstr 設定快取的請求策略和超時時間 nsurlrequest urlreuqest nsurlre...