1

ユーザーが戻るボタンを押すたびにAndroidの戻るボタンを使用してメインページに移動しようとしています。ユーザーがログインしていない場合、アプリケーションは終了する必要があります。このコードを試してみましたが、インデックス ページでのみ機能し、他のページでは [戻る] ボタンが無効になっているように機能します。私はこのアプリケーションに phonegap を使用しています。

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

function onDeviceReady() {
document.addEventListener("backbutton", onBackKeyDown, false);

}

}

次の関数を.jsファイルに保持しました。

function onBackKeyDown() {
    alert('Back Button!');
    if (window.localStorage.getItem("loggedInData") == "undefined"
            && window.localStorage.getItem("loggedInData") == "") {
        //location.href = 'main.html';
        alert('LoggedIn');

    } else {
        alert('not logged in');
        navigator.app.exitApp();

    }

}

4

2 に答える 2

0

これを機能させるための Phonegap の簡単な経験では、document.ready の前に onDeviceReady を呼び出す必要がありました (これは意味がないことはわかっていますが、小さなプロジェクトではうまくいきました)。

また、ページに基づいて戻るボタンにさまざまな機能を割り当てている場合は、次のように off().on() をチェーンして毎回再バインドする前に、最初にそれらをクリアするのが好きです。

$(document).off("deviceready").on("deviceready", PhoneGapReady);
function PhoneGapReady(e) {
    $(document).off("backbutton").on("backbutton", backHandler);
}
function backHandler(e) {
    //back button pressed do something if you like
}

また、localstorage の if ステートメントでは、「and」ではなく「or」にする必要がありますか?

于 2012-10-18T12:05:21.260 に答える
0

アプリのすべてのページで戻るボタンを機能させるには、次のコードをすべての html ページに追加します。

 $(document).ready(function() {
 $(document).on("deviceready", PhoneGapReady);
 function PhoneGapReady(e) {
document.addEventListener("backbutton", onBackKeyDown, false);
    } 

}

function onBackKeyDown(){
//your codes for back button
}

そして追加

<script>type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"</script>

すべてのページに... 私はcordova-2.0.0を使用しているので、それを使用しました。

于 2012-10-19T09:58:42.393 に答える