2014-10-04 302 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

相关问题