2016-12-09 22 views
6

Có cách nào để định cấu hình WKWebView đi qua máy chủ HTTP Proxy không? Tôi biết điều này là có thể với NSURLSession trực tiếp, nhưng tôi muốn cấu hình nó để tất cả các yêu cầu thông qua trình duyệt WKWebView đi qua một proxy.Hỗ trợ HTTP Proxy với WKWebView

Trả lời

3

NSURLSessionConfiguration có một giao diện trực tiếp (connectionProxyDictionary) để làm điều đó, vì vậy nó có thể được thực hiện dễ dàng

Nhưng, WkWebView không có bất kỳ giao diện trực tiếp như vậy, nó yêu cầu, làm cho nội dung dùng ngoài trời của quá trình và do đó bạn có thể tưởng tượng như WkWebview dụ là sandboxed từ phần còn lại của ứng dụng của bạn

WkWeView thậm chí bỏ qua các tập tin cookie (NSHTTPCookieStorage), cache (NSURLCache) và Credentials (NSCredentialStorage) của NSURLSession & NSURLConnection tương tự như vậy các lớp mạng không thể truy cập cookie, bộ đệm và thông tin đăng nhập của cá thể WkWebView.

UIWebView không thực hiện quá trình này và do đó bạn có thể sử dụng NSURLProtocol như được minh họa trong mẫu CustomHTTPProtocol để proxy tới máy chủ.

Kể từ iOS 10, vẫn không có hỗ trợ cho NSURLProtocol trong WkWebView để bạn không thể ủy quyền bằng WkWebView.

Nếu máy chủ proxy của bạn hỗ trợ đường hầm (VPN) sau đó bạn có thể sử dụng NetworkExtension.framework và các lớp học của nó (NEVPNManager, NEVPNProtocol, NEVPNConnection vv ..) chỉ đạo tất cả các lưu lượng mạng của ứng dụng của bạn thông qua máy chủ proxy của bạn.

Đây là tutorial về cách thực hiện điều này

Các vấn đề liên quan