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

La redonita vidaĵo uzas dediĉitan nepersisteman WKWebsiteDataStore. Ŝargu la celatan retejon per tiu vidaĵo. Uzu la konton de la peranto aŭ forlasu applyCredential por prokso, kiu bezonas neniun. Por tiu neaŭtentigita HTTP-branĉo, la HTTP-proksa listo provizas kandidatajn finpunktojn por la datumstoko.

Ĉiu vidaĵo, kiu dividas ĉi tiun stokon, dividas ĝian proksan politikon. Ĉi tiu dediĉita stoko ankaŭ havas efemerajn retejajn datumojn, do ĝi ne heredas la ekzistantan retejan ensaluton de alia vidaĵo.

Tenu la agordon antaŭ la navigado. WebKit avertas, ke ŝanĝi la proksan agordon de stoko povas interrompi ĝian nunan retadon.

Aparta URLSession-eltiro sekvata de loadHTMLString kovras nur tiun HTML-eltiron. Bildoj, skriptoj kaj posta navigado ankoraŭ uzas la retadon de la vidaĵo; la stoko estas la publika hoko por agordi tiun vojon.

Rilataj artikoloj