WKWebView
可以通过WKHTTPCookieStorage
管理自己的cookie,与NSHTTPCookieStorage
独立。我该如何将WKHTTPCookieStore
中的cookie同步到NSHTTPCookieStorage
?
我的目标是使WKHTTPCookieStore
和NSHTTPCookieStorage
之间的cookie同步。
我尝试使用实现观察者方法WKHTTPCookieStoreObserver
来同步cookie。
- (void)cookiesDidChangeInCookieStore:(WKHTTPCookieStore *)cookieStore {
[cookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *array) {
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *nsHttpCookies = cookieStorage.cookies;
//add new Cookie from wkWebView
[array enumerateObjectsUsingBlock:^(NSHTTPCookie *cookie, NSUInteger idx, BOOL *stop) {
if(![nsHttpCookies containsObject:cookie]){
[cookieStorage setCookie:cookie];
}
}];
//add old Cookie from wkWebView
[nsHttpCookies enumerateObjectsUsingBlock:^(NSHTTPCookie *cookie, NSUInteger idx, BOOL *stop) {
if(![array containsObject:cookie]){
[cookieStorage deleteCookie:cookie];
}
}];
}];
}
这是同步
WKWebView
中 cookie 到 NSHTTPCookieStorage
的正确方式吗?
Cookie
头作为字符串。然后你可以将其分解并比较缺少什么。这只是一个想法。 - Ben