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.

Povezani članci