【问题标题】:Any property or method to clear a WKWebiew's cache清除 WKWebiew 缓存的任何属性或方法
【发布时间】:2017-05-03 17:58:26
【问题描述】:

我正在使用WKWebView 登录内容管理系统。构建应用程序后,WKWebView 仍然登录到网站。如何清除存储此信息的缓存?

【问题讨论】:

    标签: swift3 wkwebview


    【解决方案1】:

    我找到了这个答案here。

    if #available(iOS 9.0, *)
    {
        let websiteDataTypes = NSSet(array: [WKWebsiteDataTypeDiskCache, WKWebsiteDataTypeMemoryCache])
        let date = NSDate(timeIntervalSince1970: 0)
    
        WKWebsiteDataStore.default().removeData(ofTypes: websiteDataTypes as! Set<String>, modifiedSince: date as Date, completionHandler:{ })
    }
    else
    {
        var libraryPath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.libraryDirectory, FileManager.SearchPathDomainMask.userDomainMask, false).first!
        libraryPath += "/Cookies"
    
        do {
            try FileManager.default.removeItem(atPath: libraryPath)
        } catch {
            print("error")
        }
        URLCache.shared.removeAllCachedResponses()
    }
    

    【讨论】:

      【解决方案2】:

      我在这里找到了以下代码:Removing cached data for WKWebView

      let dataStore = WKWebsiteDataStore.default()
          dataStore.fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes()) { (records) in
              for record in records {
                  print(record.displayName)
                  if record.displayName.contains("facebook") {
                      dataStore.removeData(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(), for: [record], completionHandler: {
                          print("Deleted: " + record.displayName);
                      })
                  }
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-07
        • 2011-07-16
        • 2022-11-28
        • 2022-07-04
        • 2016-12-22
        • 2018-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多