6

phonegap と jquery mobile でアプリを作成しています。

不明なエラーを処理するには、アプリを完全に再起動し、すべての変数と動的コンテンツを最初の実行と同等に再初期化する必要があります。

もともと私は $.mobile.changePage($'#home') を使用していましたが、動的コンテンツや変数を再初期化しないため、明らかに機能しません。

アプリを完全に再起動し、すべてを初期設定に戻すためにjquery mobileで呼び出すことができる方法はありますか?

4

4 に答える 4

8

完全な解決策については、あなたは運が悪いと思います。

iOS は間違いなく * プログラムによるアプリの強制終了を許可しません。

Android ではアプリの強制終了が許可されています。文書化されていませんが(私が見つけることができました)、使用できます

navigator.app.exitApp();

現在のアプリを強制終了します。

ただし、プログラムで再起動することはできません。

最善の策は、変数とローカル ストレージ/DB (使用されている場合) をリセットするコードを作成することだと思います。document.location.href = 'index.html?var=xxx';次に、xxx = 現在のタイムスタンプを介してインデックス ページをリロードします。最後にタイムスタンプを配置すると、キャッシュされていないバージョンのページが確実にプルされます。

*編集: Apple が本来あるべきアプリの強制終了を許可しているという私の声明には追加されませんでした。

于 2013-09-13T11:09:22.690 に答える
4

試してみてください、document.location.href

document.location.href = 'index.html';
于 2013-09-13T06:56:33.793 に答える
2

アプリ をリロードしようとしましたか?

reload() メソッドは、現在のドキュメントをリロードするために使用されます。
reload() メソッドは、ブラウザのリロード ボタンと同じことを行います。
デフォルトでは、reload() メソッドはキャッシュからリロードしますが、forceGet パラメーターを true に設定することで、強制的にリロードしてサーバーからページを取得することができます。

location.reload();
于 2013-09-13T06:51:28.557 に答える
0

アプリを再起動する代わりに、特定のページの pagebeforeshow を確認し、必要な値に初期化できます。そのページにアクセスするたびに値が初期化されるようにします。

$.mobile.changePage( "#PageID", {
     reverse: false,
    changeHash: false

});


$(document).on('pagebeforeshow','#PageID',function(){

/* Intialise all your variables here*/


});
于 2013-09-13T05:23:02.593 に答える