2012-09-23 12 views
5

誰かがAndroidの戻るボタンを無効にする方法を教えてください(それはすべてのAndroid携帯にある戻るボタンです)。Jquerymobile、PhoneGapを使用してAndroidの携帯電話の戻るボタンを無効にするには

PhoneGapでJqueryモバイルを使用しています。私はCordovaのドキュメントでこれをオンラインで見つけることができますが、これは私のためには機能しません。戻るボタンイベントは登録されていません。

function onLoad() { 
    console.log("**** INSIDE ONLOAD FUNCTION *****"); 
    document.addEventListener("backbutton", onBackKeyDown, false); 
} 

// Handle the back button 
function onBackKeyDown() { 

    // Pressing the back button does not print this message. 
    console.log("**************** INSIDE BACK BUTTON *************"); 
} 
+1

ユーザーが自分のアプリを移動するにはBACKボタンを使用し、または可能性アプリを離れることができるように期待しています。 BACKボタンで何か*肯定*をしたいのなら、それはいいです。たとえば、ユーザーが最初に移動するまでは、自分のアプリ内でナビゲートすることができます。その時点で、通常のBACKボタンの動作が可能になります。それ以外の場合は、[戻る]ボタンを押したままにしてください。 – CommonsWare

+1

@Uuadie答えが正しいです。あなたのコードの問題は、バックキーイベントリスナーを登録する前に、 "deviceready"イベントを待たずに済んだことです。 –

答えて

13

私はbackKeyDownを使用し、それが私の作品:

function onDeviceReady() { 
     document.addEventListener("backbutton", backKeyDown, true); 
     console.log("PhoneGap is ready"); 
    } 

    function backKeyDown(d) { 
     navigator.app.exitApp(); // To exit the app! 
     e.preventDefault(); // to disable the back 
    } 

が確認PhoneGap is readyことを確認!

更新:あなたはそれを無効に空のハンドラを残すことができ

+0

この回答があなたの問題を解決した場合は、Ouadieの喜びと、ここで終わる同様の質問をした人々の両方の回答としてマークしてください。 – Ouadie

+0

onDeviceReady関数が実行されていません。私は以前これを使ってみました。私は、ドキュメントに記載されているものと、あなたが上記に述べたことを正確に実行しています。戻るボタンを除いて、私のアプリは正常に動作します。 onDeviceReadyが呼び出されていない理由がありますか? ありがとう – user1478810

+0

まだ解決策を探していますか? – Ouadie

0
sometimes you can get blocking Back button, sometimes not. 

document.addEventListener("deviceready", onDeviceReady, false); 
function onDeviceReady() { 
    document.addEventListener("backbutton", function (e) { 
     e.preventDefault(); 
    }, false); 
}