为了账号安全,请及时绑定邮箱和手机立即绑定

限制WKWebview加载特定页面?

限制WKWebview加载特定页面?

慕后森 2023-09-04 17:00:38
如何阻止 WEKWebView 中加载任何网页?为了加载整个网站,我使用此代码self.webview.customUserAgent = userAgent  self.webview.navigationDelegate = self self.webview.load(URLRequest.init(url: URL.init(string: snapshot.value as! String)!))但知道我想通过使用 NavigationDelegate 方法限制某些特定页面加载到此 webview 中吗?
查看完整描述

1 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

做到这一点的好方法是比较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)

    }


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


请不要忘记设置委托viewDidLoad


    webview.navigationDelegate = self


查看完整回答
反对 回复 2023-09-04
  • 1 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信