ios – 使用WKWebView支持HTTP代理

有没有办法配置WKWebView通过HTTP代理服务器?我知道这可以直接使用NSURLSession,但我想配置它以便通过WKWebView浏览器的所有请求都通过代理.

解决方法

NSURLSessionConfiguration有一个直接接口(connectionProxyDictionary)来做到这一点,所以它可以很容易地完成

但是,WkWebView没有任何类似的直接界面,​​它会请求,将内容呈现在进程外,因此您可以想象WkWebview实例是从应用程序的其余部分沙箱化的

WkWeView甚至忽略了NSURLSession& amp;的cookie(NSHTTPCookieStorage),缓存(NSURLCache)和凭证(NSCredentialStorage). NSURLConnection同样这些网络类无法访问WkWebView实例的cookie,缓存和凭据.

UIWebView不会在进程外执行,因此您可以使用CustomHTTPProtocol示例中演示的NSURLProtocol来代理服务器.

从iOS 10开始,WkWebView中仍然不支持NSURLProtocol,因此您无法使用WkWebView进行代理.

如果您的代理服务器支持隧道(VPN),那么您可以使用NetworkExtension.framework及其类(NEVPNManager,NEVPNProtocol,NEVPNConnection等..)通过您的代理服务器引导您的应用程序的所有网络流量.

这是关于如何做到这一点的tutorial

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...