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

步骤一:

说明:因为需要和手机的硬件(返回按钮)打交道,而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********************/
}]);

最新文章

  1. LinqToDB 源码分析——生成表达式树
  2. 转载:谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
  3. 初识Polymer框架
  4. 我的c++学习(4) C++输入输出格式的控制
  5. JS-页面操作
  6. 【转载】20分钟MySQL基础入门
  7. JS 学习笔记--4---运算符
  8. UIImage的简单用法和实际操作
  9. warning: push.default is unset;
  10. ubuntu 16.04 Ubuntu 安装GDebi,从而安装deb文件
  11. Linux中通过命令直接删除文件中最后一行
  12. Redis-位图法实现简单统计
  13. 刚 安装 Oracle时,登录会出现的问题, ora-28000: the account is locked
  14. es6使用技巧
  15. Guava 教程1-使用 Google Collections,Guava,static imports 编写漂亮代码
  16. 翻译:SELECT INTO语句(已提交到MariaDB官方手册)
  17. Java Hash集合的equals()与hashCode() 方法
  18. 通过linux核映射驱动访问GPIO
  19. Swift学习笔记6
  20. Fiddler(三)Fiddler 报错creation of the root certificate was not successful

热门文章

  1. Centos搭建Python+Nginx+Tornado+Mysql环境[转载]
  2. gerrit session expired 怎么解决,搜索未果
  3. js判断输入时间是否大于系统时间
  4. android Menu
  5. Excel图表的基本类型与选择
  6. word域1
  7. 扩展卡尔曼滤波(MRPT)
  8. 微信小程序-发起请求
  9. 微信小程序-视图列表渲染
  10. GitHub注册账号