WKWebView HTTPCookies иногда возвращает nil, swift - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь установить куки определенного URL в WKWebView. Большую часть времени он возвращает файлы cookie, но иногда их возвращает ноль.

extension WKWebView {

private var httpCookieStore: WKHTTPCookieStore  {
    return WKWebsiteDataStore.default().httpCookieStore
}

func getCookies(for domain: String? = nil, completion: @escaping ([String : Any])->())  {
    var cookieDict = [String : AnyObject]()
    HTTPCookieStorage.shared.cookieAcceptPolicy = HTTPCookie.AcceptPolicy.always
    httpCookieStore.getAllCookies { (cookies) in
        for cookie in cookies {
            HTTPCookieStorage.shared.setCookie(cookie)
            ATBClientHandler.shared.isCookieFound = true
            if let domain = domain {
                if cookie.domain.contains(domain) {
                    cookieDict[cookie.name] = cookie.properties as AnyObject?
                }
            } else {
                cookieDict[cookie.name] = cookie.properties as AnyObject?
            }
        }
        print("myCookie: \(cookieDict)")
        completion(cookieDict)
    }
}}

Реализация

self.webView.getCookies(for: self.webView.url?.host) { (data) in
                print(data)
            }

В приведенном выше коде "myCookie:" иногда возвращает правильное значение. Но иногда myCookie: возвращает [:], а иногда массив cookie сам по себе равен нулю. Пожалуйста, кто-нибудь, помогите мне с этим вопросом. Спасибо

...