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 אָפּרוף. בילדער, סקריפּטן און שפּעטערדיקע נאַוויגאַציע ניצן נאָך די מיינונג'ס נעץ; דער סטאָר איז דער עפנטלעכער קרוק צו קאָנפֿיגורירן יענעם וועג.

פֿאַרבונדענע אַרטיקלען