NSURLSessionConfiguration有一个直接的接口(connectionProxyDictionary)可以实现代理,所以这可以很容易地完成。但是,WkWebView没有像那样的直接接口,它请求并在进程外呈现内容,所以你可以想象WkWebview实例就像被隔离在应用程序的其余部分之外一样。WkWeView甚至忽略了NSURLSession和NSURLConnection的cookie(NSHTTPCookieStorage)、缓存(NSURLCache)和凭据(NSCredentialStorage),同样这些网络类也无法访问WkWebView实例的cookie、缓存和凭据。UIWebView没有在进程外执行,因此您可以使用NSURLProtocol来代理到服务器,如CustomHTTPProtocol示例中所示。截至iOS 10,WkWebView仍不支持NSURLProtocol,因此无法使用WkWebView进行代理。如果您的代理服务器支持隧道(VPN),则可以使用NetworkExtension.framework及其类(NEVPNManager、NEVPNProtocol、NEVPNConnection等)将应用程序的所有网络流量定向通过您的代理服务器。