Я пытаюсь установить куки определенного 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 сам по себе равен нулю. Пожалуйста, кто-нибудь, помогите мне с этим вопросом. Спасибо