浏览代码

清除h5缓存

南鑫林 5 年之前
父节点
当前提交
340ec4718c

+ 1 - 1
RainbowPlanet/RainbowPlanet/Base/BaseWebViewController/BaseJSWebBaseViewController.swift

@@ -29,6 +29,7 @@ class BaseJSWebBaseViewController: BaseViewController {
     }
     
     override func setupViews() {
+        removeWKWebViewCookies()
         view.addSubview(wkWebView)
         view.addSubview(progressView)
         WebViewJavascriptBridge.enableLogging()
@@ -161,7 +162,6 @@ class BaseJSWebBaseViewController: BaseViewController {
                 progressView.alpha = 0.0
                 progressView .setProgress(0.0, animated: false)
             }
-           NXLLog(wkWebView.estimatedProgress)
         }else if keyPath == "title" {
             let vc = wkWebView.findViewController() as? BaseViewController
             _ = vc?.navigationBar.title = wkWebView.title

+ 1 - 0
RainbowPlanet/RainbowPlanet/Base/BaseWebViewController/BaseJSWebViewController.swift

@@ -28,6 +28,7 @@ class BaseJSWebViewController: UIViewController {
     }
     
     func setupViews() {
+        removeWKWebViewCookies()
         view.addSubview(wkWebView)
         view.addSubview(progressView)
         WebViewJavascriptBridge.enableLogging()

+ 24 - 0
RainbowPlanet/RainbowPlanet/Tools/WKWebView/WebView.swift

@@ -336,3 +336,27 @@ extension WebView: WKUIDelegate{
         target?.present(alert, animated: true, completion: nil)
     }
 }
+
+func removeWKWebViewCookies() {
+    
+    //iOS9.0以上使用的方法
+    if #available(iOS 9.0, *) {
+        let dataStore = WKWebsiteDataStore.default()
+        dataStore.fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(), completionHandler: { (records) in
+            for record in records{
+                //清除本站的cookie
+//                if record.displayName.contains("sina.com"){//这个判断注释掉的话是清理所有的cookie
+                    WKWebsiteDataStore.default().removeData(ofTypes: record.dataTypes, for: [record], completionHandler: {
+                        //清除成功
+//                        NXLLog("清除成功\(record)")
+                    })
+//                }
+            }
+        })
+    } else {
+        //ios8.0以上使用的方法
+        let libraryPath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.libraryDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).first
+        let cookiesPath = libraryPath! + "/Cookies"
+        try!FileManager.default.removeItem(atPath: cookiesPath)
+    }
+}