实现这个功能需要四个步骤:

步骤一:

说明:因为需要和手机的硬件(返回按钮)打交道,而ionic本身是不具备该功能的,但是有一个东西可以:ng-cordova插件,这个插件是phoneGap为了能让ionic操作硬件而为ionic量身打造的一款插件,只要安装上这个插件,我们的ionic应用就具备了拍照,浏览图库,监听返回按钮等等功能。

操作:按照这个网址http://ngcordova.com/docs/install/上面说的安装好ng-cordova插件

步骤二:

说明:上述的ng-cordova这个插件有点像Java语言中接口的意思,具体需要实现什么功能我们还要为他安装它的实现类(它的插件),现在我们要提示用户“再按一次退出系统”的一个提示框,这个提示框的插件叫做cordova-toast(或叫cordovaToast或叫$cordovaToast)。

操作:在DOS窗口中进入你当前Ionic应用的目录,输入命令:cordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git

步骤三:

说明:插件安装完成之后我们还需加入(注入)依赖之后才能使用

操作:在如步骤四的代码中加入$cordovaToast,同时借助于ionic自身的$ionicPlatform,$location,$rootScope,$ionicHistory

步骤四:代码实现

angular.module('lqApp', ['ionic','ngCordova'])
.run(['$ionicPlatform','$location','$rootScope','$ionicHistory','$cordovaToast',
function ($ionicPlatform,$location,$rootScope,$ionicHistory,$cordovaToast) {
$ionicPlatform.ready(function () {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
}); /********************双击退出start********************/
$ionicPlatform.registerBackButtonAction(function (e) {
//判断处于哪个页面时双击退出
if ($location.path() == '/login' || $location.path() == '/tab/main' ) {
if ($rootScope.backButtonPressedOnceToExit) {
ionic.Platform.exitApp();
} else {
$rootScope.backButtonPressedOnceToExit = true;
$cordovaToast.showShortBottom('再按一次退出系统');
setTimeout(function () {
$rootScope.backButtonPressedOnceToExit = false;
}, 2000);
}
}
else if ($ionicHistory.backView()) {
$ionicHistory.goBack();
} else {
$rootScope.backButtonPressedOnceToExit = true;
$cordovaToast.showShortTop('再按一次退出系统')
.then(function(success) {
// success
alert("'success");
}, function (error) {
// error
alert("error");
});
setTimeout(function () {
$rootScope.backButtonPressedOnceToExit = false;
}, 2000);
}
e.preventDefault();
return false;
}, 101);
/********************双击退出end********************/
}]);

ionic实现双击返回键退出功能的更多相关文章

  1. [转]Ionic 实现双击返回键退出功能

    本文转自:http://ionichina.com/topic/5514b539b6421f9166aa5f88 一.准备 Toast插件 插件地址:cordova plugin add https: ...

  2. ionic 实现双击返回键退出应用功能

    ionic 实现双击返回键退出应用功能 keywords cordova,ngcordova,phonegap,ionic,双击,返回键,退出 例子 准备Toast插件,提示用,用户体验好点,不是必须 ...

  3. ionic实现双击返回键退出软件

    1.首先要安装cordova插件:插件地址:cordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git ...

  4. Android双击返回键退出Activity的两种方法

    在开发应用程序的时候,有一种功能是非常常用到的,那就是迅速双击返回按钮,然后实现退出Activity的功能.本人在网上看了很多资料代码,总结起来,主要有两种比较好的方式.一种是开线程延时执行,一种是记 ...

  5. Android应用双击返回键退出

    @Override public void onBackPressed() { // TODO 退出提示 if (System.currentTimeMillis() - mExitTime > ...

  6. WP8 双击返回键退出

    bool isExit = false; // 构造函数 public MainPage() { InitializeComponent(); isExit = false; // 用于本地化 App ...

  7. WP8.1应用双击返回键退出程序。

    #region 双击退出程序代码 //双击HardwareButtons.BackPressed: //出现退出提示窗口: //“确定”退出,“取消”返回什么也不做: private async vo ...

  8. Android 应用按两下返回键退出应用程序

    在android应用开发中,有时候应用会用到按两下返回键退出应用的功能,今天介绍一下这个功能,直接上代码: @Override public boolean dispatchKeyEvent(KeyE ...

  9. android双击返回键退出程序

    今天给大家简单说一下,android双击返回键退出程序. @Override public boolean onKeyDown(int keyCode, KeyEvent event) {      ...

随机推荐

  1. kafka0.9.0及0.10.0配置属性

    问题导读1.borker包含哪些属性?2.Producer包含哪些属性?3.Consumer如何配置?borker(0.9.0及0.10.0)配置Kafka日志本身是由多个日志段组成(log segm ...

  2. OpenCart中文乱码解决方法

      遇到在列表页面调用部分截取中文内容的时候,被截取的内容有乱码,改数据库的编码没用,后来发现:utf8_substr(strip_tags(html_entity_decode($result['d ...

  3. PRINCE2项目管理七大流程之指导流程

    PRINCE2项目管理七大流程之指导流程   今天学习七大流程之二--项目指导流程 项目指导流程的目的就是使项目管理委员会能够对项目的成功负责,具体来说,是由项目管理委员会作出关键决策,并进行总体控制 ...

  4. JS的兼容函数

    获取类名的兼容函数 //obj.getElementsByClassName 只能在现代浏览器中使用,不能在IE8以下使用 //两个参数 classname 类名 obj 范围 function ge ...

  5. 个人作业-Week2 案例分析

    微软必应词典客户端的案例分析 第一部分 调研,评测 1)bug: 运行平台:iOS 10.0.2 必应词典版本:4.2.2 1. bug标题:词库加载错误 bug详细描述:学习界面中的经典词库出国考试 ...

  6. 【ASM C/C++】 Makefile 规则说明

    make 命令会自动读取当前目录下的 Makefile 文件[31],完成相应的编译步骤.Makefile 由一组规则(Rule)组成,每条规则的格式是:target ... : prerequisi ...

  7. mac攻略(七) -- 环境变量PATH分析

      一.首先需要了解 1>mac 一般使用bash作为默认shell 2>Mac系统的环境变量,加载顺序为: 1.系统级别的 /etc/profile /etc/bashrc /etc/p ...

  8. Python 对目录中的文件进行批量转码(GBK>UTF8)

    通过python实现对文件转码,其实处理很简单: 1.打开读取文件内容到一个字符串变量中,把gbk编码文件,对字符串进行decode转换成unicode 2.然后使用encode转换成utf-8格式. ...

  9. 如何运用CSS写小三角

    <html> <div class="con"></div> </html> <style> .con{width:0; ...

  10. Spring MVC之@RequestBody, @ResponseBody 详解

    http://blog.csdn.net/kobejayandy/article/details/12690555