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 13 Javascript
javascript面向对象的方式实现的弹出层效果代码
Jan 28 Javascript
Ajax 数据请求的简单分析
Apr 05 Javascript
浅谈JavaScript的内置对象和浏览器对象
Jun 03 Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 Javascript
jquery attr()设置和获取属性值实例教程
Sep 25 Javascript
js获取腾讯视频ID的方法
Oct 03 Javascript
浅谈jquery高级方法描述与应用
Oct 04 Javascript
微信小程序与php 实现微信支付的简单实例
Jun 23 Javascript
JavaScript实现计数器基础方法
Oct 10 Javascript
JavaScript生成指定范围随机数和随机序列的方法
May 05 Javascript
微信小程序实现的canvas合成图片功能示例
May 03 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阻止页面后退的方法分享
2014/02/17 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
浅谈javascript的数据类型检测
2010/07/10 Javascript
JQueryEasyUI datagrid框架的进阶使用
2013/04/08 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
Angular路由简单学习
2016/12/26 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
JS中数据结构之栈
2019/01/01 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
英国汽车零件购物网站:GSF Car Parts
2019/05/23 全球购物
C#如何进行LDAP用户校验
2012/11/21 面试题
在职人员函授期间自我评价分享
2013/11/08 职场文书
如何客观的进行自我评价
2013/12/17 职场文书
人资专员岗位职责
2014/04/04 职场文书