Kaydka xogta proxy ee WKWebView on iOS 17+ iyo macOS 14+
On iOS 17 ama macOS 14 iyo wixii ka dambeeya, dhig proxyConfigurations ka hor abuurista iyo socodka aragtida, oo ay la socdaan aqoonsiga marka dhexdhexaadiyaha CONNECT u baahan yahay.
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)
}Aragtida la soo celiyay waxay isticmaashaa WKWebsiteDataStore gaar ah oo aan joogto ahayn. Ku rar website-ka loogu talagalay aragtidaas. Isticmaal akoonka dhexdhexaadiyaha ama ka tag applyCredential proxy aan u baahnayn wax. Laanta HTTP aan la xaqiijin, liiska proxy-ga HTTP wuxuu bixiyaa dhammaadka musharraxa kaydka xogta.
Aragti kasta oo wadaagta kaydkan waxay wadaagtaa siyaasadeeda proxy. Kaydkan gaar ah wuxuu sidoo kale leeyahay xog website oo ku meel gaar ah, sidaas darteed ma dhaxlo gelitaanka website-ka ee aragti kale.
Hayso habaynta ka hor socodka. WebKit wuxuu digniin ka bixinayaa in beddelka habaynta proxy ee kaydku uu carqaladayn karo shabakadeeda hadda.
Soo jiidasho URLSession gooni ah oo ay ku xigto loadHTMLString waxay daboolaysaa kaliya soo jiidashada HTML taas. Sawirrada, scripts-ka iyo socodka dambe waxay wali isticmaalayaan shabakada aragtida; kaydku waa jillaabka dadweynaha ee lagu habeynayo waddadaas.