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 ଫେଚ୍ ଅନ୍ତର୍ଭୁକ୍ତ କରେ। ଚିତ୍ର, ସ୍କ୍ରିପ୍ଟ ଏବଂ ପରବର୍ତ୍ତୀ ନେଭିଗେସନ୍ ଏବେ ମଧ୍ୟ ଭ୍ୟୁର ନେଟୱାର୍କିଂ ବ୍ୟବହାର କରନ୍ତି; ଷ୍ଟୋର୍ ସେହି ପଥ କନଫିଗର୍ କରିବାର ସାର୍ବଜନୀନ ହୁକ୍।