2016-12-09 2 views
6

Gibt es eine Möglichkeit, WKWebView für die Ausführung eines HTTP-Proxy-Servers zu konfigurieren? Ich weiß, dass das mit NSURLSession direkt möglich ist, aber ich möchte es so konfigurieren, dass alle Anforderungen über den WKWebView-Browser einen Proxy durchlaufen.HTTP-Proxy-Unterstützung mit WKWebView

Antwort

3

NSURLSessionConfiguration hat eine direkte Schnittstelle (connectionProxyDictionary), dass zu tun, so kann es leicht

getan werden, aber WkWebView hat keine direkte Schnittstelle wie das, fordert er, macht den Inhalt out- of-Prozess und so kann man wie WkWebview Beispiel vorstellen, aus dem Rest Ihrer App Sandbox

WkWeView ignoriert sogar die Cookies (NSHTTPCookieStorage), Caches (NSURLCache) und Credentials (NSCredentialStorage) von NSURLSession & NSURLConnection ebenfalls diese Netzwerkklassen kann nicht auf Cookies, Caches und Anmeldeinformationen der WkWebView-Instanz zugreifen.

Die UIWebView macht es nicht out-of-process und so können Sie NSURLProtocol, wie in CustomHTTPProtocol Beispiel gezeigt, Proxy zu einem Server verwenden.

Ab iOS 10 gibt es immer noch keine Unterstützung für NSURLProtocol in WkWebView, so dass Sie Proxy mit WkWebView nicht verwenden können.

Wenn Ihr Proxy-Server unterstützt Tunneling (VPN), dann können Sie NetworkExtension.framework und seine Klassen verwenden (NEVPNManager, NEVPNProtocol, NEVPNConnection etc ..) alle Netzwerk-Traffic Ihrer App über den Proxy-Server zu leiten.

Hier ist ein tutorial auf, wie man dies tut