Vefsvæði WKWebView fyrir proxy-gagnageymslur á iOS 17+ og macOS 14+
Á iOS 17 eða macOS 14 og nýrri, stilltu proxyConfigurations áður en sýnin er búin til og siglt, með skilríkjum þegar CONNECT-milliliðurinn þarf þau.
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)
}Sýnin sem skilað er notar sérstaka óvaranlega WKWebsiteDataStore. Hladdu ætlaða vefsvæðinu í gegnum þá sýn. Notaðu reikning milliliðarins eða slepptu applyCredential fyrir proxy sem krefst engra. Fyrir þá óstaðfestu HTTP-grein veitir HTTP-proxylistinn hugsanlega endapunkta fyrir gagnageymsluna.
Hver sýn sem deilir þessari geymslu deilir proxy-stefnu hennar. Þessi sérstaka geymsla hefur einnig skammvinn vefsvæðisgögn, svo hún erfir ekki núverandi innskráningu annarrar sýnar.
Haltu stillingunum á undan siglingunni. WebKit varar við að breyting á proxy-stillingum geymslu geti truflað núverandi netvirkni hennar.
Sérstakt URLSession-sækja og síðan loadHTMLString nær aðeins yfir þá HTML-sækju. Myndir, skriftur og síðari sigling nota enn netvirkni sýnarinnar; geymslan er opinberi krókurinn til að stilla þá leið.