如何阻止 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
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消