Эх сурвалжийг харах

Add new protocol : decidePolicyForNavigationAction

Marino Faggiana 7 жил өмнө
parent
commit
53677ffd09

+ 6 - 0
iOSClient/Library/SwiftWebVC/SwiftModalWebVC.swift

@@ -13,6 +13,7 @@ public protocol SwiftModalWebVCDelegate: class {
     func didReceiveServerRedirectForProvisionalNavigation(url: URL)
     func didFinishLoading(success: Bool, url: URL)
     func loginWebClose()
+    func decidePolicyForNavigationAction(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
 }
 
 public class SwiftModalWebVC: UINavigationController {
@@ -139,4 +140,9 @@ extension SwiftModalWebVC: SwiftWebVCDelegate {
     public func loginWebClose() {
         self.delegateWeb?.loginWebClose()
     }
+    
+    public func decidePolicyForNavigationAction(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
+        
+        self.delegateWeb?.decidePolicyForNavigationAction(webView, decidePolicyFor: navigationAction, decisionHandler: decisionHandler)        
+    }
 }

+ 8 - 1
iOSClient/Library/SwiftWebVC/SwiftWebVC.swift

@@ -14,6 +14,7 @@ public protocol SwiftWebVCDelegate: class {
     func didFinishLoading(success: Bool)
     func didFinishLoading(success: Bool, url: URL)
     func loginWebClose()
+    func decidePolicyForNavigationAction(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
 }
 
 public class SwiftWebVC: UIViewController {
@@ -332,6 +333,11 @@ extension SwiftWebVC: WKNavigationDelegate {
     
     public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
         
+        self.delegate?.decidePolicyForNavigationAction(webView, decidePolicyFor: navigationAction, decisionHandler: decisionHandler)
+        
+        /*
+        let url = navigationAction.request.url
+        
         if #available(iOS 9.0, *) {
             decisionHandler(.allow)
         } else {
@@ -347,6 +353,7 @@ extension SwiftWebVC: WKNavigationDelegate {
                 webView.load(newRequest as URLRequest)
             }
         }
+        */
     }
     
     public func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
@@ -366,5 +373,5 @@ extension SwiftWebVC: WKNavigationDelegate {
             print("unknown state. error: \(String(describing: challenge.error))")
         }
     }
-
+    
 }

+ 4 - 0
iOSClient/Login/CCLoginWeb.swift

@@ -141,6 +141,10 @@ extension CCLoginWeb: SwiftModalWebVCDelegate {
     public func loginWebClose() {
         self.delegate?.loginWebClose()
     }
+    
+    public func decidePolicyForNavigationAction(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
+        decisionHandler(.allow)
+    }
 }
 
 

+ 4 - 0
iOSClient/Main/CCMore.swift

@@ -441,6 +441,10 @@ extension CCMore: SwiftModalWebVCDelegate, SwiftWebVCDelegate{
     public func didFinishLoading(success: Bool, url: URL) {
         print("Finished loading. Success: \(success).")
     }
+    
+    public func decidePolicyForNavigationAction(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
+        decisionHandler(.allow)
+    }
 }
 
 class CCCellMore: UITableViewCell {