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)
}

Kallon da aka mayar yana amfani da WKWebsiteDataStore keɓaɓɓe marar dawwama. Loda shafin da ake so ta wannan kallon. Yi amfani da asusun mai shiga tsakani ko bar applyCredential ga wakilin da baya buƙatar ko ɗaya. Ga wannan reshen HTTP marar tabbaci, jerin wakilan HTTP yana ba da wuraren ƙarshe masu yuwuwa ga ajiyar bayanai.

Kowane kallo da ke raba wannan ajiya yana raba manufofin wakilinsa. Wannan keɓaɓɓen ajiya kuma yana da bayanan shafi na wucin gadi, don haka baya gado shiga shafin da wani kallo ke da shi.

Rike saitin gabanin kewayawa. WebKit yana gargaɗi cewa canza saitin wakilin ajiya na iya katse hanyar sadarwarsa na yanzu.

Wani jigo na URLSession dabam wanda loadHTMLString ya biyo baya yana rufe wannan jigon HTML kawai. Hotuna, rubutun shirye-shirye da kewayawa daga baya har yanzu suna amfani da hanyar sadarwar kallon; ajiyar ita ce hanyar jama'a ta saita wannan hanya.

Labarai masu alaƙa