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

Qaytarilgan koʻrinish alohida doimiy boʻlmagan WKWebsiteDataStore dan foydalanadi. Kerakli veb-saytni shu koʻrinish orqali yuklang. Vositachining hisobidan foydalaning yoki hech qanday hisob maʼlumoti talab qilmaydigan proksi uchun applyCredential ni tushirib qoldiring. Ushbu autentifikatsiyasiz HTTP tarmogʻi uchun HTTP proksilar roʻyxati maʼlumotlar ombori uchun nomzod soʻnggi nuqtalarni taqdim etadi.

Bu omborni baham koʻrgan har bir koʻrinish uning proksi siyosatini ham baham koʻradi. Bu alohida omborda vaqtinchalik veb-sayt maʼlumotlari ham bor, shuning uchun u boshqa koʻrinishning mavjud veb-sayt kirishini meros qilib olmaydi.

Konfiguratsiyani navigatsiyadan oldin saqlang. WebKit omborning proksi konfiguratsiyasini oʻzgartirish uning joriy tarmoq ishini toʻxtatishi mumkinligi haqida ogohlantiradi.

Alohida URLSession soʻrovi va undan keyin loadHTMLString faqat shu HTML soʻrovini qamrab oladi. Rasmlar, skriptlar va keyingi navigatsiya hali ham koʻrinish tarmogʻidan foydalanadi; ombor shu yoʻnalishni sozlash uchun ommaviy ilgakdir.

O'xshash maqolalar