wkwebview正常是不允许拦截的,但是官方文档中给出了私有api:
registerSchemeForCustomProtocol
unregisterSchemeForCustomProtocol
具体的拦截方式,推荐看下此链接:
https://www.jianshu.com/p/14e5156edc07
拦截后出现的问题1:
.此拦截方式是私有api,上线可能被拒,
解决方案:
可以通过混淆的方式绕过审核,具体混淆方式可以自己去尝试下。
拦截后出现的问题2:.
此拦截方式是针对全局的拦截,如果app中还有其他的webview,那么其他的webview也会被拦截,出现http请求body为空的现象(因为注册了私有拦截api)那么就需要处理其中的关系:
解决方案:
1)拦截处理做在一个webview中,viewWillAppear时registerSchemeForCustomProtocol,viewWillDisAppear时unregisterSchemeForCustomProtocol
2)拦截处理wkwebview后,+ (BOOL)canInitWithRequest:(NSURLRequest *)request中根据每个webview设置的customUserAgent标识处理放行,或只拦截指定标识的webview