Depozitat e të dhënave të proxy-t të WKWebView në iOS 17+ dhe macOS 14+
Në iOS 17 ose macOS 14 dhe më vonë, caktoni proxyConfigurations përpara se të krijoni dhe të lundroni pamjen, me kredencialet kur ndërmjetësi CONNECT i kërkon ato.
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)
}Pamja e kthyer përdor një WKWebsiteDataStore të dedikuar jo të përhershëm. Ngarkoni faqen e synuar përmes asaj pamjeje. Përdorni llogarinë e ndërmjetësit ose hiqni applyCredential për një proxy që nuk kërkon asnjë. Për atë degë HTTP të paautentikuar, lista e proxy-ve HTTP ofron pika fundore kandidate për depozitën e të dhënave.
Çdo pamje që ndan këtë depozitë ndan politikën e saj të proxy-t. Kjo depozitë e dedikuar ka gjithashtu të dhëna të përkohshme faqesh, kështu që nuk trashëgon hyrjen ekzistuese në faqen e një pamjeje tjetër.
Mbajeni konfigurimin përpara lundrimit. WebKit paralajmëron se ndryshimi i konfigurimit të proxy-t të një depozite mund të ndërpresë rrjetin e saj aktual.
Një marrje e veçantë me URLSession e ndjekur nga loadHTMLString mbulon vetëm atë marrje HTML. Imazhet, skriptet dhe lundrimi i mëpasshëm përdorin ende rrjetin e pamjes; depozita është grepja publike për konfigurimin e asaj rruge.