HTTPプロキシサーバーを経由するようにWKWebViewを設定する方法はありますか?これはNSURLSessionを使って直接行うことができますが、WKWebViewブラウザからのすべての要求がプロキシを経由するように設定する必要があります。それは簡単にWKWebViewでのHTTPプロキシサポート
を行うことができます。しかし、WkWebViewはそのような直接的なインターフェースを持っていないので、
HTTPプロキシサーバーを経由するようにWKWebViewを設定する方法はありますか?これはNSURLSessionを使って直接行うことができますが、WKWebViewブラウザからのすべての要求がプロキシを経由するように設定する必要があります。それは簡単にWKWebViewでのHTTPプロキシサポート
を行うことができます。しかし、WkWebViewはそのような直接的なインターフェースを持っていないので、
NSURLSessionConfigurationが、それを行うために直接インタフェース(connectionProxyDictionary)を持って、それが要求し、コンテンツをレンダリングOUT-プロセスの、さらにはクッキー(NSHTTPCookieStorage)、キャッシュ(NSURLCache)と同様にNSURLSession & NSURLConnectionの資格情報(NSCredentialStorage)これらのネットワーククラスを無視WkWeView WkWebviewインスタンスは、あなたのアプリ
の残りの部分からサンドボックス化されたようなので、あなたが想像することができますWkWebViewインスタンスのCookie、キャッシュ、および資格情報にアクセスできません。
UIWebViewはout-of-processを実行しないので、CustomHTTPProtocolのサンプルで示したようにNSURLProtocolをサーバーに使用できます。
iOS 10では、まだWkWebViewにNSURLProtocolがサポートされていないため、WkWebViewを使用してプロキシすることはできません。
プロキシサーバーがトンネリング(VPN)をサポートしているなら、あなたはNetworkExtension.frameworkとそのクラスを使用することができます(NEVPNManager、NEVPNProtocol、NEVPNConnectionなど。)、プロキシサーバを介して、あなたのアプリのすべてのネットワークトラフィックを指示します。
ここでは、これを行う方法についてtutorialです。