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 сурамжылоосун камтыйт. Сүрөттөр, скрипттер жана кийинки навигация дагы эле көрүнүштүн тармагын колдонот; кампа — ошол маршрутту конфигурациялоонун ачык илгичи.

Тектеш макалалар