最近用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();
}