猿问

限制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 中吗?


慕后森
浏览 115回答 1
1回答

幕布斯6054654

做到这一点的好方法是比较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
随时随地看视频慕课网APP

相关分类

Html5
我要回答