最近用android做了一个程序,在点“后退”的时候,会不停地后退,感觉不好。
查了些资料有这么些:
一、toast_plugin插件
<script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
<script src="toast_plugin.js"></script>
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.addEventListener("backbutton", eventBackButton, false); //返回键
}
function eventBackButton(){
window.plugins.toastPlugin.show_long('再点击一次退出!');
document.removeEventListener("backbutton", eventBackButton, false); //注销返回键
//3秒后重新注册
var intervalID = window.setInterval(
function() {
window.clearInterval(intervalID);
document.addEventListener("backbutton", eventBackButton, false); //返回键
},3000);
这个可是实现现在很多APP双击返回键退出程序的功能;
二、按返回键,弹退出确认框
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.addEventListener("backbutton", eventBackButton, false); //监听事件//
}
//事件处理
function eventBackButton(){
showConfirm();
}
// PhoneGap Notification 提供的 Confirm API
function showConfirm() {
navigator.notification.confirm(
'按確定退出', // message
onConfirm, // callback function
'是否退出', // title
'确定,取消' // confirm 選項,用逗號隔開
);
} function onConfirm(button) {
if (button === 1){
navigator.app.exitApp();
}
}
上面2个基本上都可以满足要求,不过还是感觉哪里不对劲。
有时候就是想要返回后退效果,结果也编程退出程序。
这时候就要添加个判断了,如下代码结合上面的方法就可以完美解决了!
document.addEventListener("backbutton",onBackKeyDown,false);
function onBackKeyDown(){
if($.mobile.activePage.is('#homepage'))
navigator.app.exitApp();
else
navigator.app.backHistory();
}