iOS 17+ ۋە macOS 14+ دىكى WKWebView ۋاكالەتچى سانلىق مەلۇمات ئامبىرى
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 ئېلىشنى قاپلايدۇ. رەسىملەر، قوليازمىلار ۋە كېيىنكى يۆتكەش يەنىلا كۆرۈنۈشنىڭ تورىنى ئىشلىتىدۇ؛ ئامبار شۇ يولنى سەپلەشنىڭ ئاممىۋى ئىلگىرىكى.