Swift webview PROXY



使用下面的代码,我创建了一个导航到URL的Web视图。它工作得很好。但是我需要通过HTTP代理进行此导航。 如何在网络视图中放置代理?

import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView = WKWebView()
webView.navigationDelegate = self
view = webView
let url = URL(string: "https://www.iphub.info")!
webView.load(URLRequest(url: url))
webView.allowsBackForwardNavigationGestures = true
}
}

不幸的是,没有简单的方法可以实现这一目标。

您可以使用自定义NSURLProtocol子类拦截已弃用的UIWebView,该子类利用内部NSURLSession。您可以轻松地将 HTTP 代理配置设置为NSURLSessionConfigurtionconnectionProxyDictionary属性。下面是示例。这将起作用,但您可能会看到比WKWebView稍差的性能。

或者,如果代理服务器支持隧道,则可以考虑使用NetworkExtension.framework。下面是一个利用网络扩展的示例项目。

最新更新