Emplacement de stockage des cookies WKWebView
Je suis la transition d'une application à partir de UIWebView
à WKWebView
et il y a une connexion automatique fonctionnalité qui a été traitée par l'enregistrement d'un cookie avec les informations que l'utilisateur a été authentifié dans NSHTTPCookieStorage
. Cependant WKWebView
ne semble pas chercher à cet endroit pour le témoin et, par conséquent, l'utilisateur est invité à l'écran de connexion à chaque fois.
Il y a une chose que je dois activer pour avoir le WKWebView utiliser des cookies correctement?
source d'informationauteur JMD | 2015-01-19
Vous devez vous connecter pour publier un commentaire.
Pour l'instant WKWebView et UIWebView n'a pas de co-travail correctement, en raison de ne pas le partage de la même témoin de l'espace de stockage. Il est été discuté en profondeur dans la réponse suivante. Comment puis-je récupérer un fichier à l'aide de WKWebView?
Espérons qu'Apple résoudre ce à dater de mise à jour.
Vous pouvez lire tous les cookies de NSHTTPCookieStorage et de l'ensemble de ces cookies à WKWebview en utilisant WKHTTPCookieStore ( introduit dans l'iOS 11). plus sur WKWebview : https://developer.apple.com/videos/play/wwdc2017/220/
Si vous souhaitez prendre en charge des versions antérieures, veuillez vous référer à cette réponse.
Puis-je définir des cookies soient utilisés par un WKWebView?
Partage des cookies obtenu en code natif(à l'aide de NSURLConnection/NSURlsession) à UIWebview a été fait par la persistance des cookies pour NSHTTPCookieStorage et UIwebview utilisé ces "cookies" à toutes les demandes de réseau. Toutefois, il existe des technique ne fonctionne pas avec WKwebview.
On peut cependant partager des cookies à partir du code natif pour WKWebview comme suit:
Lors du chargement de la NSURLRequest, nous pouvons charger des cookies comme en-tête dans le URLRequest et puis le charger à la demande avec WKwebview.
et si vous voulez tous les autres appels AJAX de WKWebview également à l'utilisation de ce cookie, vous pouvez injecter ces cookies dans le WKWebview lors du chargement de la URLRequest.Ceci est expliqué en détail dans la réponse ci-dessous.
Puis-je définir des cookies soient utilisés par un WKWebView?
Init chaque
WKWebView
avec leWKWebViewConfiguration
peut-être une surprise pour vous!