Использование SwAl в приложении JQuery Mobile, работающем в оболочке Cordova. Он отлично работает, но для одной небольшой проблемы.
SwAl запущен, и пользователь нажимает кнопку «Назад» в своем приложении для Android. Все в фоновом режиме идет на шаг назад, но SwAl отсутствует - SwAl просто остается там по какой-то причине, которую я не могу понять.
Как мне заставить SwAl исчезнуть, когда пользователь вернется на свой телефон?
Я здесь догадываюсь. Если вы покажете нам код, я смогу помочь.
чтобы sweetAlert скрылся, необходимо обновить страницу. В Cordova или JQuery, когда вы нажимаете назад, страница не обновляется, она просто меняет состояние, поэтому попробуйте поместить обработчик событий на кнопку возврата / изменения страницы с помощью телефонного разговора и скрыть сладкое предупреждение.
Я нашел обходной путь к этому. пришлось внести несколько изменений в библиотеку swal.
в моем коде я проверяю обратную навигацию, а также, открыт ли ласточка или нет.
если да, то я просто закрываю его и не использую навигацию по умолчанию.
$ (document) .on ("pagebeforechange", function (e, ob) {// чтобы предотвратить обратную навигацию
if (ob.options.direction == "назад" && swal.isOpen ()) {
swal.cancelAlert (); // закрываем ласточку
e.preventDefault (); // предотвращаем обратную навигацию
history.go (1); // избегаем изменения хеша
// вернуть ложь;
}
})
// Закрытие / Отмена любых открытых сладких предупреждений
window.swal.cancelAlert = function () {
closeModal ();
};
// Проверяем, открыт ли SWAL.
window.swal.isOpen = function () {
var modal = getModal ();
if (hasClass (модальный, "showSweetAlert")) {
вернуть истину;
} else if (hasClass (modal, "hideSweetAlert")) {
вернуть ложь;
}еще{
вернуть ложь;
}
};
Вы можете проверить ссылочный код здесь - https://github.com/t4t5/sweetalert/pull/236
Как сказано в запросе на перенос, просто используйте swal.close()
просто используйте этот скрипт, он работает для меня:
заголовок ("Cache-Control: no-store, no-cache, must-revalidate, max-age = 0");
заголовок ("Истекает: Сб, 26 июля 1997 г., 05:00:00 по Гринвичу");