Get the current full URL for WKWebView

前端 未结 3 945
误落风尘
误落风尘 2020-12-15 03:47

Is there a way to get the FULL URL loaded by a WKWebView for every request?

webView:didFinishNavigation:

Works only for

3条回答
  •  死守一世寂寞
    2020-12-15 04:27

    This is Yuichi Kato's answer for Swift 4. It retrieves the full URL from the request property of the navigation action in the webView(_:decidePolicyFor:decisionHandler:) method of WKNavigationDelegate.

    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        if let urlStr = navigationAction.request.url?.absoluteString {
            //urlStr is what you want
        }
    
        decisionHandler(.allow)
    }
    

    Don't forget to conform your class to WKNavigationDelegate and set your web view's delegate accordingly:

    class WebViewController: UIViewController, WKNavigationDelegate
    
    [...]
    
    webView.navigationDelegate = self
    

提交回复
热议问题