簡體   English   中英

如何在按下后退按鈕時阻止Android關閉Web應用程序?

[英]How to prevent Android from closing web-application when backbutton is pressed?

我正在開發一個HTML5 Web應用程序,並使用Cordova(phonegap)1.7進行編譯。

我想覆蓋Android后退按鈕,以便我可以調用window.history.back()而不是關閉應用程序(默認Android)。 如何防止Android在按下后退按鈕時殺死默認活動?

我得到了“后退按鈕!!!!” 在logcat中,因此在關閉應用程序之前觸發該方法。

這是我到目前為止:

        // Wait for Cordova to load
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova is ready
        //
        function onDeviceReady() {

            document.addEventListener("backbutton", function(e) {

                console.log("Back button pressed!!!!");                 
                window.history.back();


            }, false);

        }

編輯:我願意接受一個答案,解釋一種直接從DefaultActivity.java android類模擬window.history.back()的方法,如果可能的話!

我通過將下面的代碼添加到DefaultActivity.java文件來解決我自己的問題,以防止默認的android行為,並保持問題中所述的JavaScript代碼:

@Override
public void onBackPressed() {
   return;
}

我希望這可以幫助將來有同樣問題的人!

我采用了這種方法。 正如你所示,我迷上了后門按鈕事件。 我想看看這是否是第一頁,然后詢問用戶是否要退出程序。 這取決於您希望程序根據其狀態執行的操作。 我沒有像你所示的那樣添加覆蓋; 我似乎不需要它。

if ($.mobile.activePage.attr('id') === 'firstpage') {
    // Prompt to confirm the exit
} else {
  window.history.back();
}

如果他們想要退出,您可以致電:

navigator.app.exitApp();

關閉你的程序。

我想你仍然想讓用戶退出你的應用程序。 我不傾向於使用不允許某種退出的應用程序。

希望這可以幫助你。

從來沒有這樣做但是,你試圖return true嗎?

與Java SDK中一樣,如果返回True ,系統將假定您已正確捕獲事件,並且不再將其傳遞給其他事件偵聽器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM