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

Itzulitako bistake WKWebsiteDataStore dedikatu ez-persistentea erabiltzen du. Kargatu nahi den webgunea bista horren bidez. Erabili bitartekariaren kontua edo utzi applyCredential bat behar ez duen proxy baterako. HTTP adar autentifikatu gabeko horretarako, HTTP proxy zerrendak hautagai amaierako puntuak eskaintzen ditu datu biltegirako.

Biltegi hau partekatzen duen bista bakoitzak bere proxy politika partekatzen du. Biltegi dedikatu honek webgune datu efimeroak ere baditu, beraz ez du beste bista baten lehendik dagoen webgune saio-hasiera heredatzen.

Eduki konfigurazioa nabigazioaren aurretik. WebKitek ohartarazten du biltegi baten proxy konfigurazioa aldatzeak bere uneko sarekada eten dezakeela.

URLSession bidezko eskuratze bereizi batek, ondoren loadHTMLString erabilita, HTML eskuratze hori soilik estaltzen du. Irudiek, scriptek eta ondorengo nabigazioak bistaren sarekada erabiltzen jarraitzen dute; biltegia ibilbide hori konfiguratzeko kako publikoa da.

Erlazionatutako artikuluak