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.

Saistītie raksti