WKWebView-proxydatalager på iOS 17+ og macOS 14+
På iOS 17 eller macOS 14 og nyare, set proxyConfigurations før du opprettar og navigerer visninga, med påloggingsinformasjon når CONNECT-mellomleddet treng det.
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)
}Den returnerte visninga brukar eit dedikert ikkje-varig WKWebsiteDataStore. Last inn nettstaden du vil bruke, gjennom den visninga. Bruk kontoen til mellomleddet, eller utelat applyCredential for ein proxy som ikkje krev nokon. For den uautentiserte HTTP-greina gjev HTTP-proxylista kandidat-endepunkt for datalageret.
Kvar visning som deler dette lageret, deler proxy-policyen. Dette dedikerte lageret har også mellombelse nettstaddata, så det arvar ikkje ei anna visning si eksisterande nettstadinnlogging.
Hald konfigurasjonen før navigeringa. WebKit åtvarar om at endring av proxykonfigurasjonen til eit lager kan avbryte den gjeldande nettverksaktiviteten.
Eit separat URLSession-hent etterfølgt av loadHTMLString dekkjer berre det HTML-hentet. Bilete, skript og seinare navigering brukar framleis nettverket til visninga; lageret er den offentlege kroken for å konfigurere den ruta.