Swift:多个WKWebview为同一个域应用程序设置了不同的cookie

Swift:多个WKWebview为同一个域应用程序设置了不同的cookie,swift,macos,cocoa,wkwebview,Swift,Macos,Cocoa,Wkwebview,我有一个Cocoa应用程序,其中包含多个Web视图,但所有Web视图都具有相同的url。我希望每个网络视图都有自己的cookie 当前的问题是,我保存cookie并将它们设置在WebView中,所有其他WebView都会收到cookie,我认为这是因为它们都具有相同的域 是否有一种方法来分离cookie,并使每个webview接收其自定义cookie 即使是javascript解决方案,我也是一个接受者 这是我目前的代码: func setData(_ value: Any, key:

我有一个Cocoa应用程序,其中包含多个Web视图,但所有Web视图都具有相同的url。我希望每个网络视图都有自己的cookie

当前的问题是,我保存cookie并将它们设置在WebView中,所有其他WebView都会收到cookie,我认为这是因为它们都具有相同的域

是否有一种方法来分离cookie,并使每个webview接收其自定义cookie

即使是javascript解决方案,我也是一个接受者

这是我目前的代码:

    func setData(_ value: Any, key: String) {
        let ud = UserDefaults.standard
        let archivedPool = NSKeyedArchiver.archivedData(withRootObject: value)
        ud.set(archivedPool, forKey: key)
    }

    func getData<T>(key: String) -> T? {
        let ud = UserDefaults.standard
        if let val = ud.value(forKey: key) as? Data,
           let obj = NSKeyedUnarchiver.unarchiveObject(with: val) as? T {
            return obj
        }

        return nil
    }

我在寻找这个问题的答案。运气好吗?不(我正在寻找这个问题的答案。运气好吗?不………:(
let processPool: WKProcessPool

        if let pool: WKProcessPool = self.getData(key: "pool\(service.id)") {
            processPool = pool
        } else {
            processPool = WKProcessPool()
            self.setData(processPool, key: "pool\(service.id)")
        }

        self.configuration.processPool = processPool

        if let cookies: [HTTPCookie] = self.getData(key: service.id) {
            for cookie in cookies {
                self.configuration.websiteDataStore.httpCookieStore.setCookie(cookie) {
                    print("Set cookie = \(cookie) with name = \(cookie.name)")
                }
            }
        }


        Timer.scheduledTimer(withTimeInterval: 20, repeats: true) { _ in
            print("Saving...")
            self.configuration.websiteDataStore.httpCookieStore.getAllCookies { cookies in
                self.setData(cookies, key: self.service.id)
            }
        }

        let request = URLRequest(url: service.url)
        Timer.scheduledTimer(withTimeInterval: 1.5, repeats: false) { _ in
            self.load(request)
        }