WKWebView прокси дайын көптөрү iOS 17+ жана macOS 14+ системаларында
iOS 17 же macOS 14 жана андан жаңы системаларда көрүнүштү түзүүдөн жана навигациялоодон мурун proxyConfigurations коюңуз, CONNECT ортомчусу талап кылганда эсептик маалыматтарды кошуңуз.
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)
}Кайтарылган көрүнүш атайын туруксуз WKWebsiteDataStore колдонот. Керектүү веб-сайтты ошол көрүнүш аркылуу жүктөңүз. Ортомчунун эсебин колдонуңуз же эч кандай эсептик маалымат талап кылбаган прокси үчүн applyCredential чакыруусун өткөрүп жибериңиз. Аутентификацияланбаган HTTP бутагы үчүн HTTP прокси тизмеси маалымат кампасы үчүн талапкер акыркы чекиттерди сунуштайт.
Бул кампаны бөлүшкөн ар бир көрүнүш анын прокси саясатын да бөлүшөт. Бул атайын кампада эфемердик веб-сайт маалыматтары да бар, ошондуктан ал башка көрүнүштүн бар веб-сайт кирүүсүн мурастабайт.
Конфигурацияны навигациядан мурун кармаңыз. WebKit кампанын прокси конфигурациясын өзгөртүү анын учурдагы тармактык ишин үзгүлтүккө учуратышы мүмкүн деп эскертет.
Өзүнчө URLSession сурамжылоосу жана андан кийин loadHTMLString жаңы гана ошол HTML сурамжылоосун камтыйт. Сүрөттөр, скрипттер жана кийинки навигация дагы эле көрүнүштүн тармагын колдонот; кампа — ошол маршрутту конфигурациялоонун ачык илгичи.