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 ફેચને આવરી લે છે. ચિત્રો, સ્ક્રિપ્ટો અને પછીનું નેવિગેશન હજી પણ વ્યૂના નેટવર્કિંગનો ઉપયોગ કરે છે; સ્ટોર તે માર્ગને કન્ફિગર કરવાનું જાહેર હૂક છે.