WKWebView starpniekservera datu krātuves iOS 17+ un macOS 14+
Operētājsistēmā iOS 17 vai macOS 14 un jaunākās versijās iestatiet proxyConfigurations pirms skata izveides un navigācijas, ar akreditācijas datiem, kad CONNECT starpnieks tiem ir vajadzīgs.
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)
}Atgrieztais skats izmanto īpašu nepastāvīgu WKWebsiteDataStore. Ielādējiet vēlamo vietni, izmantojot šo skatu. Izmantojiet starpnieka kontu vai izlaidiet applyCredential starpniekserverim, kuram nekas nav vajadzīgs. Šai neautentificētajai HTTP atzarai HTTP starpniekserveru saraksts piedāvā kandidātu galapunktus datu krātuvei.
Katrs skats, kas koplieto šo krātuvi, koplieto arī tās starpniekservera politiku. Šai īpašajai krātuvei ir arī īslaicīgi vietnes dati, tāpēc tā nepārmanto cita skata esošo vietnes pieteikšanos.
Paturiet konfigurāciju pirms navigācijas. WebKit brīdina, ka krātuves starpniekservera konfigurācijas maiņa var pārtraukt tās pašreizējo tīklošanu.
Atsevišķs URLSession pieprasījums un pēc tam loadHTMLString aptver tikai šo HTML pieprasījumu. Attēli, skripti un turpmākā navigācija joprojām izmanto skata tīklu; krātuve ir publiskais āķis šī maršruta konfigurēšanai.