WKWebView 清除快取的方法

2021-10-06 10:44:56 字數 1817 閱讀 2783

概述

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...