Usando SwAl en una aplicación Jquery Mobile que se ejecuta en un shell cordova. Funciona muy bien, pero por un pequeño problema.
SwAl está activo y el usuario presiona el botón Atrás en su aplicación de Android. Todo en el fondo retrocede un paso, pero no SwAl: SwAl simplemente se queda allí por alguna razón que no puedo entender.
¿Cómo hago para que SwAl desaparezca cuando un usuario vuelve a navegar en su teléfono?
Supongo que aquí. Si nos muestra algún código, podría ayudarme más.
para que sweetAlert se oculte, la página debe actualizarse. En Cordova o JQuery, cuando presiona Atrás, la página no se actualiza, solo cambia de estado, por lo que intenta poner un controlador de eventos en el botón Atrás / Cambio de página usando phonegap y ocultar la alerta dulce.
Encontré una solución a esto. Tuve que hacer algunas modificaciones para tragar la biblioteca también.
en mi código, estoy verificando la navegación hacia atrás y también si el trago está abierto o no.
Si es así, lo cierro y también evito la navegación predeterminada.
$ (documento) .on ("pagebeforechange", function (e, ob) {// para evitar la navegación hacia atrás
if (ob.options.direction == "back" && swal.isOpen ()) {
swal.cancelAlert (); // cierra la golondrina
e.preventDefault (); // evitar la navegación hacia atrás
history.go (1); // evitar el cambio de hash
// falso retorno;
}
})
// Cierra / Cancela cualquier alerta dulce abierta
window.swal.cancelAlert = function () {
closeModal ();
};
// Compruebe si el SWAL está abierto o no.
window.swal.isOpen = function () {
var modal = getModal ();
if (hasClass (modal, "showSweetAlert")) {
devuelve verdadero;
} else if (hasClass (modal, "hideSweetAlert")) {
falso retorno;
}demás{
falso retorno;
}
};
Puede consultar el código de referencia aquí: https://github.com/t4t5/sweetalert/pull/236
Como dice la solicitud de extracción, solo use swal.close()
solo usa este script, funciona para mí:
header ("Cache-Control: no-store, no-cache, must-revalidate, max-age = 0");
encabezado ("Vence el sábado 26 de julio de 1997 a las 05:00:00 GMT");