1钻心、刪除WKWebview的緩存
WKWebView有默認(rèn)的緩存功能哗伯,即便H5做了更改屉符,app上顯示的依舊是老得頁(yè)面析恋。為了解決這一問題良哲,我們就會(huì)用到WKWebView的刪除緩存功能。
iOS9 WKWebView新方法:
NSSet *websiteDataTypes = [NSSet setWithArray:@[
WKWebsiteDataTypeDiskCache,
WKWebsiteDataTypeOfflineWebApplicationCache,
WKWebsiteDataTypeMemoryCache,
WKWebsiteDataTypeLocalStorage,
WKWebsiteDataTypeCookies,
WKWebsiteDataTypeSessionStorage,
WKWebsiteDataTypeIndexedDBDatabases,
WKWebsiteDataTypeWebSQLDatabases
]];
//你可以選擇性的刪除一些你需要?jiǎng)h除的文件 or 也可以直接全部刪除所有緩存的type
//NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];
NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
[[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes
modifiedSince:dateFrom completionHandler:^{
// ?code
}];
在IOS7和8中助隧,
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];
只要做一次清空緩存即可筑凫。
2、獲取WKWebview的內(nèi)容高度
-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
[_web_webView evaluateJavaScript:@"document.body.offsetHeight" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
//獲取頁(yè)面高度喇颁,并重置webview的frame
double webViewHeight = [result doubleValue];
CGRect frame = _web_webView.frame;
frame.size.height = webViewHeight+15;
_web_webView.frame = frame;
}];
}