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 对表格的行和列都能加亮显示
Dec 26 Javascript
JavaScript继承方式实例
Oct 29 Javascript
JS仿flash上传头像效果实现代码
Jul 18 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
Jan 13 Javascript
Jquery判断form表单数据是否变化
Mar 30 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
Sep 24 Javascript
微信小程序 WebSocket详解及应用
Jan 21 Javascript
Javascript中 toFixed四舍六入方法
Aug 21 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
Jan 04 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
May 08 Javascript
基于javascript实现碰撞检测
Mar 12 Javascript
JavaScript实现页面动态验证码的实现示例
Mar 23 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开发文件系统实例讲解
2006/10/09 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
探讨:如何编写PHP扩展
2013/06/13 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
PHP实现计算器小功能
2020/08/28 PHP
JavaScript创建对象的写法
2013/08/29 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
Python程序设计入门(1)基本语法简介
2014/06/13 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
Python对excel文档的操作方法详解
2018/12/10 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
Django框架反向解析操作详解
2019/11/28 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
Python自动化操作实现图例绘制
2020/07/09 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
安全员岗位职责
2013/11/11 职场文书
旅游管理专业个人求职信范文
2013/12/24 职场文书
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL
Python利用zhdate模块实现农历日期处理
2022/03/31 Python
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript