WKWebView proxy pohrane podataka na iOS 17+ i macOS 14+
Na iOS 17 ili macOS 14 i novijima, postavite proxyConfigurations prije stvaranja i navigacije prikaza, s vjerodajnicama kada ih CONNECT posrednik treba.
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)
}Vraćeni prikaz koristi namjensku nestalnu WKWebsiteDataStore. Učitajte željeno web-mjesto kroz taj prikaz. Koristite račun posrednika ili izostavite applyCredential za proxy koji ga ne zahtijeva. Za tu neautentificiranu HTTP granu popis HTTP proxyja nudi kandidatne krajnje točke za pohranu podataka.
Svaki prikaz koji dijeli ovu pohranu dijeli i njezinu proxy politiku. Ova namjenska pohrana također ima privremene podatke web-mjesta, pa ne nasljeđuje postojeću prijavu web-mjesta drugog prikaza.
Držite konfiguraciju prije navigacije. WebKit upozorava da promjena proxy konfiguracije pohrane može prekinuti njezino trenutačno umrežavanje.
Odvojeno dohvaćanje putem URLSession praćeno loadHTMLString pokriva samo to HTML dohvaćanje. Slike, skripte i kasnija navigacija i dalje koriste umrežavanje prikaza; pohrana je javna kuka za konfiguriranje te rute.