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


Posted in Javascript onSeptember 17, 2019

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中添加如下代码:

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

cordova plugin add

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 短路法代码精简
Aug 20 Javascript
dojo学习第一天 Tab选项卡 实现
Aug 28 Javascript
JavaScript定时器详解及实例
Aug 01 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
Aug 15 Javascript
jquery插件Jplayer使用方法简析
Apr 22 Javascript
js从外部获取图片的实现方法
Aug 05 Javascript
微信小程序表单弹窗实例
Jul 19 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
May 14 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
Jun 07 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 jQuery
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 Javascript
Vue3 源码导读(推荐)
Oct 14 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
Sep 17 #Javascript
ionic+html5+API实现双击返回键退出应用
Sep 17 #Javascript
Vue的属性、方法、生命周期实例代码详解
Sep 17 #Javascript
小程序的上传文件接口的注意要点解析
Sep 17 #Javascript
微信小程序实现蒙版弹出窗功能
Sep 17 #Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
Sep 17 #Javascript
ionic2.0双击返回键退出应用
Sep 17 #Javascript
You might like
用PHP和MySQL保存和输出图片
2006/10/09 PHP
PHP4与PHP5的时间格式问题
2008/02/17 PHP
PHP 面向对象实现代码
2009/11/11 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
Python中用altzone()方法处理时区的教程
2015/05/22 Python
python实现的简单FTP上传下载文件实例
2015/06/30 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
Pytorch之contiguous的用法
2019/12/31 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
函授药学自我鉴定
2014/02/07 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
小学家长通知书评语
2014/12/31 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python