WKNavigationDelegate

I have a problem when using WKNavigationDelegate. It seems like only some of the delegate methods are working.

I have implemented some of the methods below, just for testing purposes. I have only had one active at the time.

Am I doing something wrong, or could it be something wrong with WKNavigationDelegate?

extension MyViewController: WKNavigationDelegate {
        
        // Not called
        public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction) async -> WKNavigationActionPolicy {
            return .cancel
        }
        
        // Called
    //    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, preferences: WKWebpagePreferences) async -> (WKNavigationActionPolicy, WKWebpagePreferences) {
    //        return (.cancel, preferences)
    //    }
        
        // Not called
    //    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    //        decisionHandler(.cancel)
    //    }

        // Called
    //    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, preferences: WKWebpagePreferences, decisionHandler: @escaping (WKNavigationActionPolicy, WKWebpagePreferences) -> Void) {
    //        decisionHandler(.cancel, preferences)
    //    }
        
        // Not called
    //    func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
    //        decisionHandler(.cancel)
    //    }

        // Not called
    //    func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse) async -> WKNavigationResponsePolicy {
    //        return .cancel
    //    }
}

After some major head scratching, I finally found the cause: https://github.com/newrelic/newrelic-ios-agent-spm/issues/31

WKNavigationDelegate
 
 
Q