2014-10-04 243 views
1

我正在使用科爾多瓦版本3.6來創建我的第一個移動應用程序。我想使用設備的後退按鈕在到達主頁時退出應用程序。我經歷了以下資源,但無法達到目的。Android應用程序中的後退按鈕無法退出應用程序

http://cordova.apache.org/docs/en/3.6.0/cordova_events_events.md.html#backbutton

PhoneGap - android exit on backbutton

backbutton confirm exit app android + phonegap + jquery

我的代碼:

JS:

function onLoad() { 
     document.addEventListener("deviceready", onDeviceReady, false); 
    } 

function onDeviceReady() { 
// Register the event listener 
document.addEventListener("backbutton", onBackKeyDown, false); 
} 

function onBackKeyDown() { 
document.addEventListener("backbutton", function(e){ 
if($('body').is('#main')){ //main is the home page id.. 
    e.preventDefault(); 
    navigator.app.exitApp();  
} else { 
    navigator.app.backHistory() 
} 
}, false); 
} 

HTML:

感謝您的時間和精力。

回答

2

在事件處理程序中再次向偵聽器添加一個偵聽器沒有什麼意義。所以從onBackKeyDown()刪除document.addEventListener。並將事件傳遞給函數。

function onBackKeyDown(e) { 
    if($('body').is('#main')){ //main is the home page id.. 
    e.preventDefault(); 
    navigator.app.exitApp();  
    } else { 
    navigator.app.backHistory() 
    } 
} 
+0

謝謝羅納德但是,它仍然無法正常工作.. – 2014-10-06 16:23:00

+0

什麼不工作?按鍵時觸發onBackKeyDown? – RonaldPK 2014-10-06 16:41:34

+0

當我按下這個鍵時,它會回到上一頁並且不會退出應用程序。 – 2014-10-06 17:10:42

0

您必須添加
<腳本類型= "文/ JavaScript的" SRC = " yourpath/cordova.js " > < /腳本>

到你的HTML文件。鍵入真正的地方爲您的路徑

+0

是的cordova.js不包括在內;但是我無法在項目目錄中找到它。 index.js和cordova.js是否一樣? – 2014-10-12 05:49:53

+0

不,即使包含cordova.js,它也不起作用。 :( – 2014-10-12 06:42:06

+0

沒有cordova.js是由Cordova SDK提供的其他文件,它位於www dir – 2014-10-22 12:01:36

相關問題