Sweetalert: SwAl ne disparaît pas lors de la navigation arrière

Créé le 11 déc. 2014  ·  5Commentaires  ·  Source: t4t5/sweetalert

Utilisation de SwAl dans une application Jquery Mobile exécutée dans un shell cordova. Cela fonctionne très bien, mais pour un petit problème.
SwAl est activé et l'utilisateur appuie sur le bouton de retour de son application Android. Tout en arrière-plan recule mais pas de SwAl - SwAl reste juste là pour une raison que je ne suis pas capable de comprendre.

Comment faire disparaître SwAl lorsqu'un utilisateur revient sur son téléphone ?

bug

Tous les 5 commentaires

Je devine ici. Si vous nous montrez du code, je pourrais peut-être vous aider davantage.

pour que sweetAlert se cache, la page doit être actualisée. Dans un Cordova ou JQuery lorsque vous appuyez sur retour, la page ne s'actualise pas, elle change simplement d'état, alors essayez de mettre un gestionnaire d'événements sur le bouton retour / changement de page en utilisant phonegap et masquez l'alerte douce.

J'ai trouvé une solution de contournement à cela. a également dû apporter quelques modifications à la bibliothèque swal.
dans mon code, je vérifie la navigation arrière et aussi si le swal est ouvert ou non.
si c'est le cas, je le ferme et empêche également la navigation par défaut.

$(document).on("pagebeforechange", function(e, ob) { //pour empêcher la navigation arrière
if(ob.options.direction=="retour" && swal.isOpen()){
swal.cancelAlert(); //ferme le swal
e.preventDefault (); //empêche de revenir en arrière
histoire.go(1); //éviter le changement de hachage
// renvoie faux ;
}
})

// Ferme/Annule toutes les alertes douces ouvertes

window.swal.cancelAlert = function() {
closeModal();
} ;

//Vérifiez si le SWAL est ouvert ou non.

window.swal.isOpen = function() {
var modal= getModal();
if (hasClass (modal, "showSweetAlert")) {
renvoie vrai ;
} else if(hasClass(modal,"hideSweetAlert")){
renvoie faux ;
}autre{
renvoie faux ;
}
} ;

Vous pouvez vérifier le code de référence ici -- https://github.com/t4t5/sweetalert/pull/236

Comme le dit la pull request, utilisez simplement swal.close()

utilisez simplement ce script, cela fonctionne pour moi:

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Expire: Sam, 26 Jul 1997 05:00:00 GMT");

Cette page vous a été utile?
0 / 5 - 0 notes