миграция с UIWebView на WKWebKit

раньше в проекте использовался UIWebView и в его делегате был метод

extension Secure3dsController: UIWebViewDelegate {
    func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebView.NavigationType) -> Bool {
        return viewModel.shouldStartLoad(request: request)
    }
}

где viewModel.shouldStartLoad(request: request)

это

func shouldStartLoad(request: URLRequest) -> Bool {
        if let path = request.url?.absoluteString, path == termUrl {
            print(path)
            parse(httpBody: request.httpBody)
            return false
        }
        return true
    }
}

сейчас используется WKWebKit и метод shouldStartLoadWith request: поменялся на такой

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: ((WKNavigationActionPolicy) -> Void)) {

        switch navigationAction.navigationType {
        case .linkActivated:
            if navigationAction.targetFrame == nil {
                self.webView.load(navigationAction.request)
            }
            if let url = navigationAction.request.url, !url.absoluteString.hasPrefix("https://myUrl.ru/") {
                UIApplication.shared.openURL(url)
                print(url.absoluteString)
                decisionHandler(.cancel)
            return
            }
            default:
                break
        }

        if let url = navigationAction.request.url {
            print(url.absoluteString)
        }
        decisionHandler(.allow)
    }

после чего webView перестал показывать страницу. Как это возможно исправить?


Ответы (0 шт):