2

私はjQuerymobileを初めて使用し、jQuerymobileを使用してPhoneGapアプリを構築しようとしています。

私は次の問題で少し立ち往生しています。

ユーザーがログインする必要がある場合に表示するフォームとしてログインダイアログがあります。ユーザーがサインインするまで、このログインフォームから移動できないようにします。すべてのリンクを削除しましたダイアログに表示されますが、ハードウェアの戻るボタンは引き続き機能します。

私は次のことを試しました:

コードをコピーする

function onDocumentReady() {
    document.addEventListener("deviceready", onDeviceReady, true);

    $("#loginDialog").on("pagebeforehide",
        function(event) {
            event.preventDefault();
            console.info('in pagebeforehide');
        }

    );
}

しかし、これは機能していません。コードは呼び出されますが(ブレークポイントを追加しました)、event.preventDefault()を呼び出しても、ページから離れる方向へのナビゲーションは停止しません。

よろしくお願いします。

4

2 に答える 2

3

私が多くの回答で言ったように、PhoneGapとAndroidの戻るボタンは非常に混乱しています。

以下のようにAndroidの戻るボタンを無効にすることができます

$(function(){
    document.addEventListener("deviceready", onDeviceReady, false);
})

// PhoneGap is loaded and it is now safe to call PhoneGap methods
function onDeviceReady() {
    // Register the event listener
    document.addEventListener("backbutton", onBackKeyDown, false);
}

// Handle the back button
function onBackKeyDown() {
    console.log("back button not fired");
}
于 2013-03-13T05:51:04.360 に答える
0

PreventDefaultは、アンカータグなどのデフォルトのアクションを防止します。戻るボタンを無効にしたい場合は、次のことを試してください。

<SCRIPT type="text/javascript">
    window.history.forward();
    function noBack() { window.history.forward(); }
</SCRIPT>
</HEAD>
<BODY onload="noBack();"
    onpageshow="if (event.persisted) noBack();" onunload="">
于 2013-03-12T18:21:38.750 に答える