WKWebview嵌入H5 Windows.open 無法攔截問題

問題


嵌入H5頁面,點擊之後攔截鏈接進行後續操作。

結果使用代理方法攔截不到:


public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
	        decisionHandler(.allow)
}

分析點:H5 使用 Windowns.open 打開的url

 

解決


遵守WKUIDelegate代理,實現如下方法


 public func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
        
        if navigationAction.targetFrame?.isMainFrame == nil {
            webView.load(navigationAction.request)
        }
        return nil
}

分析一下意思,就是當跳到新的target,還是使用當前webview進行加載requset

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章