限制特定页面在 WKWebview 中加载?

Restrict specific Pages to Load in WKWebview?

如何防止在 WEKWebView 中加载任何网页? 为了加载整个网站,我正在使用此代码

self.webview.customUserAgent = userAgent 
self.webview.navigationDelegate = self
self.webview.load(URLRequest.init(url: URL.init(string: snapshot.value as! String)!))

但我想通过使用 NavigationDelegate 方法限制某些特定页面加载到此 webview 中?

执行此操作的好方法是比较 URL Host,可以使用以下方法

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

        let exceptedHosts: [String] = [
            "facebook.com", 
            "m.facebook.com"
        ]

        if let host = navigationAction.request.url?.host {
            if exceptedHosts.contains(host) {
                decisionHandler(.cancel)
                return
            }
        }

        decisionHandler(.allow)
    }

这将阻止任何带有 facebook.comm.facebook.com 的 url 被打开,将任何主机添加到数组中以防止它们被打开。

请不要忘记在 viewDidLoad

中设置委托
    webview.navigationDelegate = self