“apple-mobile-web-app-capable” site de commutateurs pour Mobile Safari après déconnexion
Lors de l'exécution d'un site mobile iOS en mode plein écran, à l'aide de la "apple-mobile-web-app-capable" de la balise meta, je suis en utilisant une combinaison de l'AJAX et synchrone des demandes de page, y compris les redirections, avec succès, tandis que l'utilisateur est connecté.
Toutefois, lorsque l'utilisateur ferme la session et la session est détruite, l'iOS de l'appareil quitte le mode plein écran et ouvre la page de connexion dans une fenêtre de Safari Mobile.
Ici est une commune de la séquence des événements:
- Utilisateur clique sur le bouton sur l'Écran d'Accueil pour lancer le site mobile sous iOS complet
mode d'écran - Serveur redirige l'utilisateur vers la page de connexion pour l'authentification (toujours en plein écran)
- Utilisateur se connecte, et est redirigé vers une maison mobile (toujours en plein écran)
- Utilisateur effectue différentes actions, via GET et POST, certains à l'aide d'AJAX et d'autres pas (encore en plein écran)
- Utilisateur clique bouton de déconnexion, qui détruit la session et la renvoie à la page de connexion
- Mobile Safari ouvre la fenêtre de rendu de la page de login de cette deuxième
J'ai essayé 301, 302 et 303 redirige sur déconnexion succès et rien ne semble changer ce comportement. Il semble lié à la session de l'utilisateur se terminant lors de l'exécution en mode plein écran. Je ne pense pas que cela est important, mais le mécanisme de sécurité est mis en œuvre par le Printemps de Sécurité en cours d'exécution sur Tomcat.
Est-il un moyen pour éviter ce problème? Je préfère ne pas utiliser un emplacement.href côté client de redirection lors de la déconnexion.
OriginalL'auteur kgx | 2012-08-28
Vous devez vous connecter pour publier un commentaire.
Vous pouvez annuler un des liens comportement par défaut en utilisant jQuery événement de la délégation pour attribuer un niveau supérieur unique gestionnaire d'événements pour tous les liens sur la page. Lors d'un événement de clic est détecté, nous annuler le comportement par défaut (qui est d'ouvrir dans le navigateur Safari mobile) et ensuite modifier manuellement la fenêtre de l'emplacement. Cette approche permet à la page de modification sans rompre l'iPhone de l'application autonome de l'expérience.
http://www.bennadel.com/blog/2302-Preventing-Links-In-Standalone-iPhone-Applications-From-Opening-In-Mobile-Safari.htm
J'étais sous l'impression de courir dans ce déjà que les non-ajax/javascript la navigation entraînerait l'application de sauter dans safari pour servir la page
Eh bien, à l'aide d'une redirection côté client comme vous le décrivez des travaux pour empêcher le navigateur Safari Mobile à partir de l'ouverture à la déconnexion de la réussite. Je suis en train de tester ce site sur les anciens appareils iOS pour voir si tous mes liens besoin de ce comportement, ou tout simplement le lien de déconnexion.
Je ne peux toujours pas comprendre ce qui provoque le commutateur pour le navigateur Safari Mobile sur la déconnexion de la réussite de l'action en particulier, et non pas tous les autres synchrone post - rediriger - get, mais vous avez raison... la seule façon d'éviter ce problème semble être la manipulation sur le côté client.
OriginalL'auteur MiiisterJim