Proxy úložiská údajov WKWebView na iOS 17+ a macOS 14+
Na iOS 17 alebo macOS 14 a novšom nastavte proxyConfigurations pred vytvorením a navigáciou zobrazenia, s prihlasovacími údajmi, keď ich sprostredkovateľ CONNECT potrebuje.
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)
}Vrátené zobrazenie používa vyhradené neperzistentné WKWebsiteDataStore. Načítajte zamýšľanú webovú lokalitu cez toto zobrazenie. Použite účet sprostredkovateľa alebo vynechajte applyCredential pre proxy, ktorá žiadne nevyžaduje. Pre túto neoverenú HTTP vetvu zoznam HTTP proxy ponúka kandidátske koncové body pre úložisko údajov.
Každé zobrazenie, ktoré zdieľa toto úložisko, zdieľa aj jeho proxy politiku. Toto vyhradené úložisko má aj efemérne údaje lokalít, takže nededia existujúce prihlásenie na lokalitu iného zobrazenia.
Udržujte konfiguráciu pred navigáciou. WebKit upozorňuje, že zmena proxy konfigurácie úložiska môže prerušiť jeho aktuálne sieťovanie.
Samostatné načítanie cez URLSession nasledované loadHTMLString pokrýva iba toto načítanie HTML. Obrázky, skripty a neskoršia navigácia stále používajú sieťovanie zobrazenia; úložisko je verejný hák na konfiguráciu tejto trasy.