清除WKWebView的缓存

  1 OC写法:     swift写法再下下面。
  2
  3 清除WKWebView的缓存,让H5页面一刷新就更新至最新的页面
  4
  8
  9 要区分iOS9.0和8.0两种
 10
 11 - (void)deleteWebCache {
 12
 13
 14
 15     if ([[UIDevice currentDevice].systemVersion floatValue] >= 9.0) {
 16
 17         NSSet *websiteDataTypes
 18
 19         = [NSSet setWithArray:@[
 20
 21                                 WKWebsiteDataTypeDiskCache,
 22
 23                                 //WKWebsiteDataTypeOfflineWebApplicationCache,
 24
 25                                 WKWebsiteDataTypeMemoryCache,
 26
 27                                 //WKWebsiteDataTypeLocalStorage,
 28
 29                                 //WKWebsiteDataTypeCookies,
 30
 31                                 //WKWebsiteDataTypeSessionStorage,
 32
 33                                 //WKWebsiteDataTypeIndexedDBDatabases,
 34
 35                                 //WKWebsiteDataTypeWebSQLDatabases
 36
 37                                 ]];
 38
 39         //// All kinds of data
 40
 41         //NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes];
 42
 43         //// Date from
 44
 45         NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
 46
 47         //// Execute
 48
 49         [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{
 50
 51             // Done
 52
 53         }];
 54
 55
 56
 57     } else {
 58
 59
 60
 61         NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];
 62
 63         NSString *cookiesFolderPath = [libraryPath stringByAppendingString:@"/Cookies"];
 64
 65         NSError *errors;
 66
 67         [[NSFileManager defaultManager] removeItemAtPath:cookiesFolderPath error:&errors];
 68
 69
 70
 71     }
 72
 73 }
 74
 75
 76
 77
 78
 79 swift:
 80
 81 // MARK: - 清空缓存
 82
 83     func ClearCache() {
 84
 85
 86
 87         let dateFrom: NSDate = NSDate.init(timeIntervalSince1970: 0)
 88
 89
 90
 91         if #available(iOS 9.0, *) {
 92
 93             let websiteDataTypes: NSSet = WKWebsiteDataStore.allWebsiteDataTypes()
 94
 95             WKWebsiteDataStore.defaultDataStore().removeDataOfTypes(websiteDataTypes as! Set<String>, modifiedSince: dateFrom) {
 96
 97                 print("清空缓存完成")
 98
 99             }
100
101         } else {
102
103               let libraryPath = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)[0]
104
105             let cookiesFolderPath = libraryPath.stringByAppendingString("/Cookies")
106
107             let errors: NSError
108
109             try? NSFileManager.defaultManager().removeItemAtPath(cookiesFolderPath)
110
111         }
112
113     }
时间: 2024-10-24 17:11:22

清除WKWebView的缓存的相关文章

如何清除微信网页缓存

之前做过很多公众号的项目,项目写完后给客户看项目,客户一而再再而三的修改元素向左挪1px,向右挪2px.改好之后让客户看,客户说我特泽发克,你啥都没有修改,你竟然骗我!!! 这其实就是微信内置浏览器的缓存在作祟啦,那么如何清理微信内置浏览器的缓存呢? 你们是否知道 ios版微信 和 android版微信 的内置浏览器的内核是不一样的呢? android版微信内置浏览器(X5内核) 1. 在安卓版微信内打开链接   https://debugx5.qq.com 2.  拉到调试页面的最底端,勾选上

c# webbrowser 清除cookie和缓存

由于缓存文件是特殊的文件,以及WebBrowser与IE版本有关因此删除缓存绝对不可能用一些IO函数就总可以解决的因此我的这些函数在IO操作的基础上,又针对环境进行相应的清理. static class WebCleaner { /* * 7 个静态函数 * 私有函数 * private bool FileDelete() : 删除文件 * private void FolderClear() : 清除文件夹内的所有文件 * private void RunCmd() : 运行内部命令 * *

Android清除本地数据缓存代码

主要功能清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 /* * 文 件 名: DataCleanManager.java * 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 */ import java.io.File; import android.content.Context; import android.os.Environment; /** * 本应用数据清除管理

清除DNS解析缓存

接下来在弹出的命令提示符窗口中输入“ipconfig /displaydns”,我们会看到系统中有多条我们之前使用过的DNS地址,如下图所示 5 然后,我们接着输入命令“ipconfig /flushdns”.这条命令的作用是清除DNS解析缓存,如下图所示 6 最后,我们打开浏览器,重新输入想要打开的网址.

分享:Android清除本地数据缓存代码

/*  * 文 件 名:  DataCleanManager.java  * 描    述:  主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录  */   import java.io.File; import android.content.Context; import android.os.Environment;   /** * 本应用数据清除管理器 */ public class DataCleanManager {     

Android清除本地数据缓存代码案例

直接上代码: /* * 文 件 名: DataCleanManager.java * 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 */ package com.test.DataClean; import java.io.File; import android.content.Context; import android.os.Environment; /** * 本应用数据清除管理器 */ public class

ipconfig /flushdns 清除系统DNS缓存

1.ipconfig /flushdns的作用 ipconfig /flushdns 这是清除DNS缓存用的. 当访问一个网站时系统将从DNS缓存中读取该域名所对应的IP地址,当查找不到时就会到系统中查找hosts文件,如果还没有那么才会向DNS服务器请求一个DNS查询,DNS服务器将返回该域名所对应的IP,在你的系统收到解析地址以后将使用该IP地址进行访问,同时将解析缓存到本地的DNS缓存中. 如果DNS地址无法解析,或者是DNS缓存中的地址错误,一般才会使用ipconfig/flushdns

在 Linux/Unix/Mac 下清除 DNS 查询缓存

在MS-Windows下,你可以使用ipconfig命令来清除dns缓存.然而,Linux和Unix提供了不同的方法来清除缓存.Linux可以运行 nscd 或者 BIND 或者 dnsmasq 作为名称服务缓存守护进程.大型或者工作组服务器可能使用BIND或者dnsmasq作为专用缓存服务器来加速查询. 如何: 清除 nscd dns 缓存 Nscd 会缓存libc发起的名称服务的请求.如果把检索NSS数据看做很慢,那么nscd能够显著加快连续访问同一数据的速度,并能提高整个系统的性能.只需重

Android 清除本地数据缓存

/* * 文 件 名: DataCleanManager.java * 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 */ import java.io.File; import android.content.Context; import android.os.Environment; /** * 本应用数据清除管理器 */ public class DataCleanManager { /** * 清除本应用内部缓存(