Cordova(ionic)项目实现双击返回键退出应用

 更新时间:2019年09月17日 14:42:06   作者:谈谈的心情  
这篇文章主要为大家详细介绍了Cordova项目实现双击返回键退出应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JS 组件系列之 bootstrap treegrid 组件封装过程

    JS 组件系列之 bootstrap treegrid 组件封装过程

    最近产品需要设计一套相对完整的组织架构的解决方案,由于组织架构涉及到层级关系,在表格里面展示层级关系,自然就要用到所谓的treegrid。下面小编通过本文给大家分享JS 组件系列之 bootstrap treegrid 组件的封装过程,需要的朋友可以参考下
    2017-04-04
  • 如何在webpack项目中调试loader插件

    如何在webpack项目中调试loader插件

    最近在学习webpack,本文主要介绍了loader插件的调试方法,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • bootstrap paginator分页插件的两种使用方式实例详解

    bootstrap paginator分页插件的两种使用方式实例详解

    Bootstrap Paginator是一款基于Bootstrap的js分页插件,下面通过本文给大家介绍bootstrap paginator分页插件的两种使用方式,一起看看吧
    2017-11-11
  • JavaScript中类型的强制转换与隐式转换详解

    JavaScript中类型的强制转换与隐式转换详解

    类型强制Coercion是将值从一种类型转换为另一种类型的过程(例如字符串转换为数字,对象转换为布尔值等),下面这篇文章主要给大家给大家介绍了JavaScript中类型的强制转换与隐式转换的相关资料,需要的朋友可以参考下
    2021-08-08
  • javascript Array对象使用小结

    javascript Array对象使用小结

    数组是一段线性分配的内存,它通过整数去计算偏移并访问其中的元素。数组是很快的数据结构,但不幸的是,Javascript并没有像这种数组一样的数据结构。
    2009-12-12
  • JavaScript利用键盘码控制div移动

    JavaScript利用键盘码控制div移动

    这篇文章主要为大家详细介绍了JavaScript利用键盘码控制div移动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • JavaScript判断浏览器及其版本信息

    JavaScript判断浏览器及其版本信息

    本篇文章主要分享了通过window.navigator来判断浏览器及其版本信息的实例代码。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • Bootstrap 实现表格样式、表单布局的实例代码

    Bootstrap 实现表格样式、表单布局的实例代码

    这篇文章主要介绍了Bootstrap 实现表格样式、表单布局的实例代码,需要的朋友可以参考下
    2018-12-12
  • 移动端滑动插件Swipe教程

    移动端滑动插件Swipe教程

    swipe.JS是一个比较有名的触摸滑动插件,它能够处理内容滑动,支持自定义选项,你可以让它自动滚动,控制滚动间隔,返回回调函数等。经常可见使用在移动前端开发中。
    2016-10-10
  • js调出上下文菜单的实例

    js调出上下文菜单的实例

    这篇文章主要介绍了js调出上下文菜单的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12

最新评论