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. Изображенията, скриптовете и следващата навигация все още използват мрежата на изгледа; хранилището е публичната кука за конфигуриране на този маршрут.

Подобни статии