Les cookies dans UIWebView sont-ils acceptés?
Je dois remettre en question pour vous.
1 : je suis en utilisant UIWebView
s dans mon iPhone. Je wan pas les utilisateurs pourront ajouter des commentaires dans la presse. Mais, pour commentaire qu'ils ont pour ouvrir une session.
Si non, comment puis-je accepter les cookies dans UIWebView
s ?
2 : les cookies créés sur UIWebView
disponibles dans d'autres UIWebView
dans un autre point de Vue ?
Ex : j'ai mon LoginViewController
avec un intégré à UIWebView
où mon utilisateur peut se connecter/se déconnecter. Si ils se connectent dans ce point de vue, le cookie sera toujours disponible dans la CommentViewController
?
Si non, comment puis-je rendre cela possible ?
Merci d'avance !
source d'informationauteur ThibaultV
Vous devez vous connecter pour publier un commentaire.
La
UIWebView
stocke automatiquement les cookies dans le[NSHTTPCookieStorage sharedHTTPCookieStorage]
collection, et devrait être disponible dans tous les autresUIWebView
s au sein de votre application, au cours de la même application se lance. Cependant, leUIWebView
classe ne comprend pas stocker automatiquement les cookies pour les pages qui sont chargés entre l'app se lance. Vous devez enregistrer manuellement les cookies lorsque l'application est déplacé à l'arrière-plan et de recharger les valeurs lorsque l'application est ramené au premier plan.Placez le code suivant dans votre AppDelegate classe:
L'expansion de l'autre répond:
Depuis
NSHTTPCookieStorage cookies
peuvent être archivés à l'aide deNSKeyedArchiver
vous n'avez pas besoin d'extraire chaque cookie propriété vous-même. En outre, vous voulez supprimer laNSUserDefaults
témoin de la propriété, quand il n'y a pas les cookies pour stocker des.Sorte que vous pouvez simplifier votre cookie de stockage/chargement de cette extension:
Alors utilisez simplement
[[NSHTTPCookieStorage sharedHTTPCookieStorage] loadFromUserDefaults];
et[[NSHTTPCookieStorage sharedHTTPCookieStorage] saveToUserDefaults];
dans votreAppDelegate
comme mentionné ci-dessus.swift 3 version claire
Swift 3
De tous les grands d'autres réponses à cette question, j'ai compilé une extension pratique sur
UserDefaults
qui raccourcit le code nécessaire.UserDefaults
Extension pour Swift 3Vous pouvez ajouter ce code dans un fichier séparé
UserDefaults+Cookies.swift
(par exemple) et ensuite appeler les méthodes à partir de votreAppDelegate
comme décrit par Brian Shamblen dans son réponse originale à cette question:Des appels de AppDelegate
Ici est plus propre et plus sûr Swift version:
Swift Version 2.0