概述
ios7.0只有uiwebview, 而ios8.0是有wkwebview, 但8.0的wkwebview沒有刪除快取方法。ios9.0之後就開始支援啦。
所以使用時候一定要適配ios9.0以上
適用場景
當我們的前端修改網頁上的某一些標籤或增加內容時候,需要最新的頁面,然而wk本身的快取機制會把網頁內容快取到本地,導致前端更改的內容不能及時在移動端更新ui,這個時候就需要清除wk的快取,讓h5頁面一重新整理就更新至最新的頁面。
清除所有的快取
import 「wkwebview+clearcache.h」
// 自定義清除快取
(void
)customdeletewebcache;
// 清除全部快取
(void
)deletewebcache;
// ios9以前清除快取
(void
)clearcacheincurrentversion;
+
(void
)deletewebcache ];
}+(void
)customdeletewebcache ];
}
(ios7.0只有uiwebview, 而ios8.0是有wkwebview, 但8.0的wkwebview沒有刪除快取方法。)
針對與ios7.0、ios8.0、ios9.0 webview的快取,我們找到了乙個通吃的辦法:
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]
; nsstring *webkitfolderincachesfs =
[nsstring
stringwithformat:@"%@/caches/%@/fscacheddata"
,librarydir,bundleid]
;nserror *error;
/* ios8.0 webview cache的存放路徑 */
[[nsfilemanager defaultmanager] removeitematpath:webkitfolderincaches error:
&error];[
[nsfilemanager defaultmanager] removeitematpath:webkitfolderinlib error:nil]
;/* ios7.0 webview cache的存放路徑 */
[[nsfilemanager defaultmanager] removeitematpath:webkitfolderincachesfs error:
&error]
;
iOS9 WKWebView清除快取方法
自ios8以來新出的wkwebview,大大優化了uiwebview的記憶體飆公升問題,使得開發者迫不及待的用它來替換掉uiwebview,ios8剛出,作者我就趕緊把專案裡的webview都替換成wkwebview了,然而.當我替換完後發現.我去!wkwebview並沒有清除快取的功能,即使使用了...
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...