Izitolo zedatha ye-proxy ze-WKWebView ku-iOS 17+ naku-macOS 14+
Ku-iOS 17 noma ku-macOS 14 nangaphezulu, setha i-proxyConfigurations ngaphambi kokudala nokuzulazula kombono, namacredentials lapho umlamuli we-CONNECT ewadinga.
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)
}Umbono obuyisiwe usebenzisa i-WKWebsiteDataStore ekhethekile engapheli. Layisha iwebhusayithi oyifunayo ngabo mbono. Sebenzisa i-akhawunti yomlamuli noma ushiye i-applyCredential uma i-proxy ingadingi lutho. Kulelo gatsha le-HTTP elingaqinisekisiwe, uhlu lwama-proxy e-HTTP lunikeza izindawo zokugcina ezingaba khona zesitore sedatha.
Yonke imibono eyabelana nalesi sitolo yabelana nenqubomgomo yayo ye-proxy. Lesi sitolo esikhethekile futhi sinedatha yesayithi yesikhashana, ngakho-ke asizuzi ukungena kwesayithi okukhona kombono omunye.
Gcina ukulungiselela ngaphambi kokuzulazula. I-WebKit ixwayisa ukuthi ukushintsha ukulungiselela kwe-proxy yesitolo kungaphazamisa ukuxhumana kwaso kwamanje.
Ukulanda okuhlukile kwe-URLSession okulandelwa i-loadHTMLString kuhlanganisa kuphela lokho kulanda kwe-HTML. Izithombe, ama-skripthi nokuzulazula kwakamuva kusasebenzisa ukuxhumana kombono; isitolo siyihhuku lomphakathi lokulungiselela leyo ndlela.