【问题标题】:Restrict specific Pages to Load in WKWebview?限制特定页面在 WKWebview 中加载?
【发布时间】:2020-03-11 08:30:39
【问题描述】:

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

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

但知道我想通过使用 NavigationDelegate 方法限制某些特定页面加载到此 web 视图中吗?

【问题讨论】:

    标签: html swift webview


    【解决方案1】:

    这样做的好方法是比较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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多