iOS 17+ və macOS 14+ üzərində WKWebView proxy data store-ları
iOS 17 və ya macOS 14 və daha sonra, görünüşü yaratmadan və naviqasiya etməzdən əvvəl proxyConfigurations təyin edin; CONNECT vasitəçisi tələb etdikdə etimadnamələri də verin.
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)
}Qaytarılan görünüş ayrılmış qeyri-davamlı WKWebsiteDataStore istifadə edir. Nəzərdə tutulan veb saytı həmin görünüş vasitəsilə yükləyin. Vasitəçinin hesabından istifadə edin və ya heç bir tələb etməyən proxy üçün applyCredential buraxın. Autentifikasiyasız HTTP qolu üçün HTTP proxy siyahısı data store üçün namizəd son nöqtələr təqdim edir.
Bu store-u paylaşan hər görünüş onun proxy siyasətini paylaşır. Bu ayrılmış store həm də müvəqqəti veb sayt məlumatlarına malikdir, ona görə də başqa görünüşün mövcud veb sayt girişini miras almır.
Konfiqurasiyanı naviqasiyadan əvvəl saxlayın. WebKit xəbərdar edir ki, store-un proxy konfiqurasiyasını dəyişmək onun cari şəbəkə fəaliyyətini poza bilər.
Ayrı bir URLSession sorğusu və ardınca loadHTMLString yalnız həmin HTML sorğusunu əhatə edir. Şəkillər, skriptlər və sonrakı naviqasiya hələ də görünüşün şəbəkəsindən istifadə edir; store həmin marşrutu konfiqurasiya etmək üçün ictimai qarmaqdır.