Прокси складишта података WKWebView на iOS 17+ и macOS 14+
На iOS 17 или macOS 14 и новијим, поставите proxyConfigurations пре креирања и навигације приказа, са акредитивима када их CONNECT посредник захтева.
import Network
import WebKit
@available(iOS 17.0, macOS 14.0, *)
@MainActor
func makeWebView(username: String, password: String) -> WKWebView {
let endpoint = NWEndpoint.hostPort(
host: "proxy.example.net", port: 8080)
let proxy = ProxyConfiguration(
httpCONNECTProxy: endpoint, tlsOptions: nil)
proxy.applyCredential(username: username, password: password)
let store = WKWebsiteDataStore.nonPersistent()
store.proxyConfigurations = [proxy]
let configuration = WKWebViewConfiguration()
configuration.websiteDataStore = store
return WKWebView(frame: .zero, configuration: configuration)
}Враћени приказ користи наменско непостојано WKWebsiteDataStore. Учитајте жељени веб-сајт кроз тај приказ. Користите налог посредника или изоставите applyCredential за прокси који га не захтева. За ту неаутентификовану HTTP грану листа HTTP проксија нуди кандидате крајње тачке за складиште података.
Сваки приказ који дели ово складиште дели и његову прокси политику. Ово наменско складиште такође има привремене податке веб-сајтова, па не наслеђује постојећу пријаву веб-сајта другог приказа.
Држите конфигурацију пре навигације. WebKit упозорава да промена прокси конфигурације складишта може прекинути његово тренутно умрежавање.
Одвојено преузимање преко URLSession праћено loadHTMLString покрива само то HTML преузимање. Слике, скрипте и каснија навигација и даље користе умрежавање приказа; складиште је јавна кука за конфигурисање те руте.