![](/img/trans.png)
[英]How can I convert my JavaScript web-application into android application?
[英]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.