WKWebView-proksaj datumstokoj en iOS 17+ kaj macOS 14+
En iOS 17 aŭ macOS 14 kaj poste, agordu proxyConfigurations antaŭ ol krei kaj navigi la vidaĵon, kun akreditaĵoj kiam la CONNECT-peranto bezonas ilin.
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.