コルドバ シェルで実行されている Jquery Mobile アプリで SwAl を使用する。 それはうまく機能しますが、1 つの小さな問題に対してです。
SwAl が起動し、ユーザーが Android アプリの [戻る] ボタンを押します。 バックグラウンドにあるものはすべて 1 歩後退しますが、SwAl はありません - SwAl は何らかの理由でそこに留まっています。
ユーザーが自分の電話に戻ったときにSwAlを非表示にするにはどうすればよいですか?
ここで推測しています。 コードを見せていただければ、もっと多くのことができるかもしれません。
sweetAlert を非表示にするには、ページを更新する必要があります。 Cordova または JQuery では、戻るボタンを押してもページは更新されず、状態が変わるだけなので、phonegap を使用して戻るボタン/ページ変更にイベント ハンドラーを配置して、甘いアラートを非表示にしてみてください。
これに対する回避策を見つけました。 swal ライブラリにもいくつかの変更を加える必要がありました。
私のコードでは、戻るナビゲーションと、swaal が開いているかどうかもチェックしています。
もしそうなら、私はそれを閉じて、デフォルトのナビゲーションも禁止します。
$(document).on("pagebeforechange", function(e, ob) { //戻るナビゲーションを防ぐため
if(ob.options.direction=="戻る" && swal.isOpen()){
swal.cancelAlert(); // 沼を閉じる
e.preventDefault(); // バックナビゲーションを防止
history.go(1); // ハッシュの変更を避ける
// false を返す;
}
})
// 開いているスイート アラートを閉じる/キャンセルします
window.swal.cancelAlert = function() {
closeModal();
};
// SWAL が開いているかどうかを確認します。
window.swal.isOpen = function() {
var modal= getModal();
if(hasClass(modal,"showSweetAlert")){
真を返す;
}else if(hasClass(modal,"hideSweetAlert")){
false を返します。
}そうしないと{
false を返します。
}
};
ここで参照コードを確認できます -- https://github.com/t4t5/sweetalert/pull/236
プル リクエストにあるように、 swal.close()
使用するだけです。
このスクリプトを使用するだけで、私にとってはうまくいきます:
header("キャッシュ制御: 保存しない、キャッシュしない、再検証する必要がある、max-age=0");
header("有効期限: 1997 年 7 月 26 日土曜日 05:00:00 GMT");