我正在尝试理解UIWebView中的请求拦截问题,以便我可以开始研究WKWebView。
我不明白的是,UIWebView有自己的拦截方法,就是shouldStartLoadWithRequest,但似乎大多数人仍然在实现一个自定义的NSURLProtocol来进行拦截。我很好奇为什么大多数人选择不使用UIWebView的方法?这里有什么不同?
发布于 2018-12-14 06:07:22
如果您想要做的只是加载或拒绝请求,您可以在WKWebView中通过成为它的WKWebViewNavigationDelegate并实现webView(_:decidePolicyFor:decisionHandler:)来做到这一点
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
let request = navigationAction.request
let policy: WKNavigationActionPolicy
if request.path.contains("something_bad") {
policy = .cancel
} else {
policy = .allow
}
decisionHandler(policy)
}https://stackoverflow.com/questions/53770442
复制相似问题