WKWebView-Proxy-Datenspäicher op iOS 17+ an macOS 14+
Op iOS 17 oder macOS 14 an duerno, setzt proxyConfigurations ier Dir d'Vue erstellt an navigéiert, mat Umeldungsdaten wann den CONNECT-Intermediaire se brauch.
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)
}Déi zréckginn Vue benotzt en eegene net-persistente WKWebsiteDataStore. Lued d'gewünscht Websäit iwwer déi Vue. Benotz de Kont vum Intermediaire oder loos applyCredential ewech fir e Proxy deen keen erfuerdert. Fir deen net authentifizéierten HTTP-Ast stellt d'HTTP-Proxy-Lëscht Kandidat-Endpunkte fir den Datenspäicher.
All Vue déi dëse Späicher deelt, deelt seng Proxy-Politik. Dësen eegene Späicher huet och éphémère Websäitdaten, dofir ierft hien net den existéierende Websäit-Login vun enger anerer Vue.
Halt d'Konfiguratioun virun der Navigatioun. WebKit warnt datt d'Ännere vun der Proxy-Konfiguratioun vun engem Späicher seng aktuell Vernetzung ënnerbrieche kann.
En separate URLSession-Ofruff gefollegt vun loadHTMLString deckt nëmmen deen HTML-Ofruff of. Biller, Skripten an déi spéider Navigatioun benotzen nach ëmmer d'Vernetzung vun der Vue; de Späicher ass den ëffentleche Haken fir deen Wee ze konfiguréieren.