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)
}

Il-vista ritornata tuża WKWebsiteDataStore dedikat mhux persistenti. Tgħabbi l-websajt maħsuba permezz ta' dik il-vista. Uża l-kont tal-intermedjarju jew ħalli barra applyCredential għal proxy li ma jeħtieġ l-ebda. Għal dak il-fergħa HTTP mhux awtentikat, il-lista tal-proxy HTTP tipprovdi punti tat-tmiem kandidati għall-maħżen tad-data.

Kull vista li taqsam dan il-maħżen taqsam il-politika tal-proxy tiegħu. Dan il-maħżen dedikat għandu wkoll data tal-websajt effimera, għalhekk ma jirtix id-dħul eżistenti fil-websajt ta' vista oħra.

Żomm il-konfigurazzjoni qabel in-navigazzjoni. WebKit jwissi li l-bidla fil-konfigurazzjoni tal-proxy ta' maħżen tista' tinterrompi n-netwerking attwali tiegħu.

Ġbid URLSession separat segwit minn loadHTMLString ikopri biss dak il-ġbid HTML. L-immaġini, l-iskripts u n-navigazzjoni aktar tard xorta jużaw in-netwerking tal-vista; il-maħżen huwa l-ganċ pubbliku biex tiġi konfigurata dik ir-rotta.

Artikli relatati