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 فیچ کا احاطہ کرتا ہے۔ تصاویر، اسکرپٹس اور بعد کی نیویگیشن اب بھی ویو کی نیٹ ورکنگ استعمال کرتی ہیں؛ اسٹور اسی راستے کو کنفیگر کرنے کا عوامی ہک ہے۔

متعلقہ مضامین