የ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 ጥያቄ ብቻ ነው። ምስሎች፣ ስክሪፕቶችና ቀጣይ ማሰስ አሁንም የእይታውን አውታረ መረብ ይጠቀማሉ፤ ስቶሩ ያንን መንገድ ለማዋቀር የሚገኝ ይፋዊ መንገድ ነው።