私はphonegapでjquerymobileを使用しています。私のアプリには、ログインページとリストページの2つのページがあります。ログインに成功すると、ユーザーはリストページに移動します。その後、携帯電話(android)の戻るボタンを押すと、ログインページに戻ります。私はこのような振る舞いをしたくありません。私が欲しいのはアプリを終了することです。
6619 次
4 に答える
5
私がこの質問に答えたように:ページハッシュとバックボタンの問題phonegap + Jquery
次のように、ブラウザの履歴にページを保持せずにページを変更できます。
$.mobile.changePage('#page', {reverse: false, changeHash: false});
残念ながら、最初のページがブラウザの履歴に残るのを防ぐことができなかったため、回避策を使用しました。
ページレイアウト:
<body>
<!-- page_1 before page_loading in source -->
<div data-role="page" id="page_1">
</div>
<!-- page_loading will be shown first -->
<div data-role="page" id="page_loading">
<div data-role="content">
<h1 >
<b>welcome</b>
</h1>
</div>
</div>
<div data-role="page" id="page_2">
</div>
</body>
jQuery:
function onBodyLoad()
{
//go to page_loading before deviceready without keeping it in browser history
$.mobile.changePage('#page_loading', {reverse: false, changeHash: false});
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady()
{
//your initialization code here...
//now go to page_1 without keeping it in browser history since the actual first page was #page_1 already
$.mobile.changePage('#page_1', {reverse: false, changeHash: false});
//your code here...
}
これはあなたのニーズに合うはずです、ただそれを試してみてください。「#page_loading」はログインページ、「page_1」はリストページになります。
于 2012-06-19T13:44:29.077 に答える
1
changeHash:falseは、ソースではなく、宛先ページを参照することに注意してください。履歴からソースページを削除することはありません。代わりに、新しいページに移動するときに履歴ハッシュは更新されません
于 2015-06-19T05:54:36.983 に答える
1
最新バージョンのjQuerymobile(1.4以降)を使用している場合は、次のスクリプトを使用できます。
$.mobile.pageContainer.pagecontainer('change', '#page', {reverse: false, changeHash: false});
jQuery.mobile.changePage
jQuery Mobile 1.4.0で非推奨になり、1.5.0で削除されます。
于 2015-10-25T10:53:32.677 に答える
0
reverseとchangeHashのオプションを追加してもうまくいきませんでした。Cordovav1.6を使用する
AndroidアクティビティでonTouchメソッドをオーバーライドすることになりました。
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_BACK == keyCode) {
// Clear browsers history if user clicks back button
clearHistory();
}
return super.onKeyUp(keyCode, event);
}
于 2012-08-16T18:22:46.500 に答える