Cordova(ionic)项目实现双击返回键退出应用
谈谈的心情 人气:0Android原生项目实现双击返回键退出应用,是十分简单的,添加如下代码即可实现:
//记录按键时间 private long exitTime; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ exit(); } return super.onKeyDown(keyCode, event); } public void exit(){ if ((System.currentTimeMillis()-exitTime)>2000){ // 点击间隔大于两秒,做出提示 Toast.makeText(getApplicationContext(), "再按一次退出应用", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); }else{ finish(); System.exit(0); } }
然而,在Cordova项目中,在继承CordovaActivity的MainActivity中添加上面的代码并不起作用,原因是返回键已经被Cordava的WebView处理掉了。
解决办法:在app.js的config中添加如下代码:
// 等待加载PhoneGap document.addEventListener("deviceready", onDeviceReady, false); // PhoneGap加载完毕 function onDeviceReady() { //按钮事件 document.addEventListener("backbutton", eventBackButton, false); //返回键 document.addEventListener("menubutton", eventMenuButton, false); //菜单键 document.addEventListener("searchbutton", eventSearchButton, false); //搜索键 } //返回键 function eventBackButton(){ //confirm("再点击一次退出!"); window.plugins.ToastPlugin.show_short('再点击一次退出!'); document.removeEventListener("backbutton", eventBackButton, false); //注销返回键 //3秒后重新注册 var intervalID = window.setInterval( function() { window.clearInterval(intervalID); document.addEventListener("backbutton", eventBackButton, false); //返回键 }, 3000 ); } //菜单键 function eventMenuButton(){ window.plugins.ToastPlugin.show_short('点击了 菜单 按钮!'); } //搜索键 function eventSearchButton(){ window.plugins.ToastPlugin.show_short('点击了 搜索 按钮!'); }
上面的脚本用到了Cordova的Toast插件,插件地址:
加载全部内容