Cordova(ionic)项目实现双击返回键退出应用

来源:互联网 发布:mac郑州专柜地址 编辑:程序博客网 时间:2024/06/06 03:59

Android原生项目实现双击返回键退出应用,是十分简单的,添加如下代码即可实现:

//记录按键时间    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中添加如下代码:

// 等待加载PhoneGapdocument.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插件,插件地址:

cordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git


1 0
原创粉丝点击