2012-09-23 43 views
5

有人可以告訴我如何禁用Android的後退按鈕(這是所有Android手機上的後退按鈕)。如何在Android中使用Jquerymobile禁用手機的後退按鈕,PhoneGap

我正在使用帶有PhoneGap的Jquery mobile。我在科爾多瓦的文檔中發現了這一點,但這對我不起作用。後退按鈕事件甚至沒有註冊。

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按鈕行爲發生。否則,請單獨退回BACK按鈕。 – CommonsWare

+1

@Ouadie的回答是正確的。你的代碼的問題是你在註冊你的後臺鍵事件監聽器之前沒有等待「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); 
} 
相關問題