Post

WKWebView拦截网页里请求的图片、JS/CSS资源

前言

接到一个需求,需要拦截APP内嵌的的webview里的h5的请求,包含普通的地址请求,还要拦截图片、JS、CSS等资源请求,找了好几个方案,发现在处理www.baidu.com时都很好的匹配,一旦患上我们自己的地址后就各种白屏或网络请求错误,或者拦截不到图片和资源,终于在GitHub找到了一个demo,使用注入的方式很好的实现的这个需求

demo Git地址:WKWebViewRequestHook 另外发现一个很适合学习研究的demo MyBrowser

一、拦截一般的通过document.url的方式打开的地址

1
2
3
4
5
6
// 根据WebView对于即将跳转的HTTP请求头信息和相关信息来决定是否跳转
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
   // 处理拦截逻辑
 //decisionHandler(WKNavigationActionPolicyCancel);
// decisionHandler(WKNavigationActionPolicyAllow);
}

二、拦截图片、JS、CSS资源 参考demo:WKWebViewRequestHook

This post is licensed under CC BY 4.0 by the author.