|
@@ -22,7 +22,7 @@ class NXLWebView: BaseView {
|
|
|
case HTMLName(name:String)
|
|
|
|
|
|
/// 加载POST请求(url:请求URL,parameters:请求参数)
|
|
|
- case POST(url:String,parameters: [String:Any])
|
|
|
+ case URLStringPOST(url:String,parameters: [String:Any])
|
|
|
}
|
|
|
|
|
|
deinit {
|
|
@@ -30,11 +30,23 @@ class NXLWebView: BaseView {
|
|
|
wkWebView.removeObserver(self, forKeyPath: "estimatedProgress")
|
|
|
wkWebView.removeObserver(self, forKeyPath: "title")
|
|
|
wkWebView.clearHTMLCache()
|
|
|
+ if observe != nil {
|
|
|
+ NotificationCenter.default.removeObserver(observe!)
|
|
|
+ }
|
|
|
}
|
|
|
+ weak var observe : NSObjectProtocol?
|
|
|
|
|
|
override func setupViews() {
|
|
|
addSubview(wkWebView)
|
|
|
addSubview(progressView)
|
|
|
+ //关闭程序
|
|
|
+ observe = NotificationCenter.default.addObserver(forName: UIApplication.willTerminateNotification, object: nil, queue: OperationQueue.main, using: {
|
|
|
+ [weak self] (notification) in
|
|
|
+ self?.wkWebView.clearWKCookies()
|
|
|
+ self?.wkWebView.clearHTMLCache()
|
|
|
+ self?.wkWebView.clearWebCacheFinish({ (finish, error) in})
|
|
|
+ self?.wkWebView.clearCacheAndCookie()
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
override func setupLayouts() {
|
|
@@ -106,7 +118,7 @@ extension NXLWebView {
|
|
|
loadRequest(urlRequest: URLRequest(url: URL(string: urlStr) ?? URL(string: "about:blank")!))
|
|
|
case .HTMLName(let name):
|
|
|
loadLocalHTML(htmlName: name)
|
|
|
- case .POST(let urlStr, parameters: let params):
|
|
|
+ case .URLStringPOST(let urlStr, parameters: let params):
|
|
|
loadRequest(urlRequest: URLRequest(url: URL(string: urlStr) ?? URL(string: "about:blank")!), parameters: params)
|
|
|
}
|
|
|
}
|
|
@@ -211,15 +223,11 @@ extension NXLWebView : WKNavigationDelegate {
|
|
|
let response = navigationResponse.response as! HTTPURLResponse
|
|
|
if response.url?.scheme?.lowercased().contains("http") ?? false {
|
|
|
let cookies = HTTPCookie.cookies(withResponseHeaderFields: response.allHeaderFields as! [String : String], for: response.url!)
|
|
|
- if #available(iOS 11.0, *) {
|
|
|
- //浏览器自动存储cookie
|
|
|
- }else {
|
|
|
- DispatchQueue.global().sync {
|
|
|
- [weak self] in
|
|
|
- if !cookies.isEmpty {
|
|
|
- for cookie in cookies {
|
|
|
- self?.wkWebView.insert(cookie)
|
|
|
- }
|
|
|
+ DispatchQueue.global().sync {
|
|
|
+ [weak self] in
|
|
|
+ if !cookies.isEmpty {
|
|
|
+ for cookie in cookies {
|
|
|
+ self?.wkWebView.insert(cookie)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -243,5 +251,3 @@ extension NXLWebView : WKNavigationDelegate {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
-
|
|
|
-
|