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 相关文章推荐
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
Aug 13 Javascript
Jquery AJAX 框架的使用方法
Nov 03 Javascript
jquery json 实例代码
Dec 02 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
Aug 16 Javascript
JavaScript使用Prototype实现面向对象的方法
Apr 14 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
Aug 11 Javascript
基于axios封装fetch方法及调用实例
Feb 05 Javascript
react 国际化的实现代码示例
Sep 14 Javascript
vue 解决异步数据更新问题
Oct 29 Javascript
Vue根据条件添加click事件的方式
Nov 09 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
Jun 07 Javascript
微信小程序实现列表左右滑动
Nov 19 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 float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
2020/02/10 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
React 组件间的通信示例
2018/06/14 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
浅谈python迭代器
2017/11/08 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
Python常见数字运算操作实例小结
2019/03/22 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
Python如何读写字节数据
2020/08/05 Python
Linux的主要特性
2016/09/03 面试题
中学运动会广播稿
2014/01/19 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
2014年师德承诺书
2014/05/23 职场文书
食品仓管员岗位职责
2015/04/01 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
毕业实习证明范本
2015/06/16 职场文书
教师继续教育反思周记
2015/06/25 职场文书
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript