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 հարցումը։ Պատկերները, սկրիպտները և հետագա նավարկումը դեռ օգտագործում են տեսքի ցանցը. պահոցը հանրային կեռիկն է այդ ուղին կարգավորելու համար։