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 相关文章推荐
js随机颜色代码的多种实现方式
Apr 23 Javascript
js控制淡入淡出示例代码
Nov 12 Javascript
Backbone.js的Hello World程序实例
Jun 19 Javascript
Javascript常用小技巧汇总
Jun 24 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
May 30 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
Jun 12 Javascript
Node.js实现文件上传
Jul 05 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
Jul 18 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
May 13 Javascript
微信小程序位置授权处理方法
Jun 13 Javascript
微信小程序动态添加和删除组件的现实
Feb 28 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
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
2018/05/28 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
jquery trim() 功能源代码
2011/02/14 Javascript
加载 Javascript 最佳实践
2011/10/30 Javascript
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
python协程之动态添加任务的方法
2019/02/19 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
python psutil监控进程实例
2019/12/17 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
如何把python项目部署到linux服务器
2020/08/26 Python
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
介绍下Java中==和equals的区别
2013/09/01 面试题
公司出纳岗位职责
2013/12/07 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
素质教育学习心得体会
2016/01/19 职场文书
协议书格式模板
2016/03/24 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP