ที่เก็บข้อมูลพร็อกซีของ 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 นั้น รูปภาพ สคริปต์ และการนำทางภายหลังยังคงใช้เครือข่ายของมุมมอง ที่เก็บคือจุดเชื่อมต่อสาธารณะสำหรับกำหนดเส้นทางนั้น