IOS 11 apporte quelques mises à jour pour WKWebView, y compris la gestion des cookies. J'ai commencé à migrer mon application depuis UIWebView et j'ai rencontré un problème : même si WKHttpCookieStore fournit une méthode pour supprimer les cookies ( deleteCookie:completionHandler : , wrapper Xamarin : DeleteCookieAsync ), en fait il ne supprime pas tous les cookies . Voici mon code :
WKHttpCookieStore cookieStore = WKWebsiteDataStore.DefaultDataStore.HttpCookieStore;
// Delete all cookies
NSHttpCookie[] allCookies = await cookieStore.GetAllCookiesAsync();
foreach (NSHttpCookie cookieToDelete in allCookies)
{
await cookieStore.DeleteCookieAsync(cookieToDelete);
}
NSHttpCookie[] newCookies = await cookieStore.GetAllCookiesAsync();
// why newCookies is not an empty array?
myWkWebView.LoadRequest(new NSUrlRequest(new NSUrl("https://facebook.com/")));
Par exemple, ce cookie est en cours de suppression :
NSHTTPCookie
version:1
name:c_user
value:100015842...
expiresDate:'2017-12-27 07:37:39 +0000'
created:'2017-09-28 07:39:01 +0000'
sessionOnly:FALSE
domain:.facebook.com
partition:none
path:/
isSecure:TRUE
path:"/"
isSecure:TRUE
Mais celui-ci ne l'est pas :
NSHTTPCookie
version:1
name:sb
value:bKbMW......OJ1V
expiresDate:'2019-09-28 07:37:39 +0000'
created:'2017-09-28 07:39:15 +0000'
sessionOnly:FALSE
domain:.facebook.com
partition:none
path:/
isSecure:TRUE
path:"/"
isSecure:TRUE
Même problème avec l'application native Swift. Je suis assez confus car un code similaire fonctionne très bien avec NSHttpCookieStorage
+ UIWebView
.
Est-ce un comportement attendu ? Si oui, pourquoi ? Existe-t-il un moyen de nettoyer les cookies dans WKHttpCookieStore
?