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 document.compatMode兼容性
Feb 23 Javascript
js的一些常用方法小结
Jun 29 Javascript
js弹出层之1:JQuery.Boxy (二)
Oct 06 Javascript
利用json获取字符出现次数的代码
Mar 22 Javascript
document.getElementById获取控件对象为空的解决方法
Nov 20 Javascript
js函数内变量的作用域分析
Jan 12 Javascript
浅谈JavaScript中的string拥有方法的原因
Aug 28 Javascript
jquery实现鼠标悬浮停止轮播特效
Aug 20 Javascript
vue组件间通信解析
Mar 01 Javascript
JavaScript运动框架 多值运动(四)
May 18 Javascript
Node.js操作redis实现添加查询功能
May 25 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
Sep 04 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
十天学会php之第十天
2006/10/09 PHP
动态生成gif格式的图像要注意?
2006/10/09 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
学习ExtJS fit布局使用说明
2009/10/08 Javascript
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
JavaScript SHA1加密算法实现详细代码
2016/10/06 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
Python变量作用范围实例分析
2015/07/07 Python
利用Python爬取可用的代理IP
2016/08/18 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
如何基于Python按行合并两个txt
2020/11/03 Python
Android笔试题总结
2014/11/29 面试题
网上商城创业计划书范文
2014/01/31 职场文书
大学生活动策划方案
2014/02/10 职场文书
优秀管理者获奖感言
2014/02/17 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL