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

Tagastatud vaade kasutab selleks ette nähtud mittepüsivat WKWebsiteDataStore. Laadige soovitud veebisait selle vaate kaudu. Kasutage vahendaja kontot või jätke applyCredential välja proxy puhul, mis ei nõua ühtegi. Selle autentimata HTTP haru jaoks pakub HTTP proxy loend andmelao jaoks kandidaat-lõpppunkte.

Iga seda ladu jagav vaade jagab selle proxy poliitikat. Sellel ettenähtud laol on ka ajutised veebisaidi andmed, seega ei päri see teise vaate olemasolevat veebisaidi sisselogimist.

Hoidke konfiguratsioon enne navigeerimist. WebKit hoiatab, et lao proxy konfiguratsiooni muutmine võib katkestada selle praeguse võrguühenduse.

Eraldi URLSession päring, millele järgneb loadHTMLString, katab ainult selle HTML-päringu. Pildid, skriptid ja hilisem navigeerimine kasutavad endiselt vaate võrku; ladu on avalik konks selle marsruudi konfigureerimiseks.

Seotud artiklid