iOS 17+ va macOS 14+ da WKWebView proksi maʼlumotlar omborlari
iOS 17 yoki macOS 14 va undan keyingi versiyalarda koʻrinishni yaratish va navigatsiya qilishdan oldin proxyConfigurations ni oʻrnating, CONNECT vositachisi talab qilganda hisob maʼlumotlarini ham qoʻshing.
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)
}Qaytarilgan koʻrinish alohida doimiy boʻlmagan WKWebsiteDataStore dan foydalanadi. Kerakli veb-saytni shu koʻrinish orqali yuklang. Vositachining hisobidan foydalaning yoki hech qanday hisob maʼlumoti talab qilmaydigan proksi uchun applyCredential ni tushirib qoldiring. Ushbu autentifikatsiyasiz HTTP tarmogʻi uchun HTTP proksilar roʻyxati maʼlumotlar ombori uchun nomzod soʻnggi nuqtalarni taqdim etadi.
Bu omborni baham koʻrgan har bir koʻrinish uning proksi siyosatini ham baham koʻradi. Bu alohida omborda vaqtinchalik veb-sayt maʼlumotlari ham bor, shuning uchun u boshqa koʻrinishning mavjud veb-sayt kirishini meros qilib olmaydi.
Konfiguratsiyani navigatsiyadan oldin saqlang. WebKit omborning proksi konfiguratsiyasini oʻzgartirish uning joriy tarmoq ishini toʻxtatishi mumkinligi haqida ogohlantiradi.
Alohida URLSession soʻrovi va undan keyin loadHTMLString faqat shu HTML soʻrovini qamrab oladi. Rasmlar, skriptlar va keyingi navigatsiya hali ham koʻrinish tarmogʻidan foydalanadi; ombor shu yoʻnalishni sozlash uchun ommaviy ilgakdir.