Ionic系列——android双击退出应用和物理返回按钮隐藏键盘的实现
2015-12-07 18:03
1286 查看
摘要: 这篇文章主要介绍了双击退出的实现,物理键返回前一面面的时候,如果有键盘先隐藏的操作。主要涉及一以下三个知识点$cordovaToast,$cordovaKeyboard, $ionicPlatform.registerBackButtonAction的使用。
1、需求描述
因为要控制在返回上一页面的时候,如果有键盘,需要先隐藏键盘,所以需要自定义android手机的物理返回键单击事件,自己定义返回按钮的优先级操作,然后实现在首页面和登录页双击退出应用的操作。
1、需求描述
因为要控制在返回上一页面的时候,如果有键盘,需要先隐藏键盘,所以需要自定义android手机的物理返回键单击事件,自己定义返回按钮的优先级操作,然后实现在首页面和登录页双击退出应用的操作。2、准备
添加插件$cordovaToast,$cordovaKeyboardcordova plugin add https://github.com/driftyco/ionic-plugins-keyboard.git cordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git[/code]3、代码实现
引入$cordovaToast,$cordovaKeyboard的依赖。angular.module('starter', ['ionic', 'route', 'config', 'global', 'commonJs', 'ngCordova']) .run(['$ionicPlatform', '$rootScope', '$location', '$timeout', '$ionicHistory', 'CommonJs', '$cordovaToast','$cordovaKeyboard', function ($ionicPlatform, $rootScope, $location, $timeout, $ionicHistory,CommonJs,$cordovaToast,$cordovaKeyboard) { $ionicPlatform.ready(function () { // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); } if (window.StatusBar) { // org.apache.cordova.statusbar required StatusBar.styleLightContent(); } }); //物理返回按钮控制&双击退出应用 $ionicPlatform.registerBackButtonAction(function (e) { //判断处于哪个页面时双击退出 if ($location.path() == '/tab/todoList' || $location.path() == '/tab/doneList' || $location.path() == '/tab/account'|| $location.path() == '/login') { if ($rootScope.backButtonPressedOnceToExit) { ionic.Platform.exitApp(); } else { $rootScope.backButtonPressedOnceToExit = true; $cordovaToast.showShortBottom('再按一次退出系统'); setTimeout(function () { $rootScope.backButtonPressedOnceToExit = false; }, 2000); } }else if ($ionicHistory.backView()) { if ($cordovaKeyboard.isVisible()) { $cordovaKeyboard.close(); } else { $ionicHistory.goBack(); } } else { $rootScope.backButtonPressedOnceToExit = true; $cordovaToast.showShortBottom('再按一次退出系统'); setTimeout(function () { $rootScope.backButtonPressedOnceToExit = false; }, 2000); } e.preventDefault(); return false; }, 101); }]);
相关文章推荐
- 工具系列——Git和TortoiseGit的使用介绍
- Node系列——express项目搭建
- Ionic系列——使用ng-cordova插件
- Ionic系列——几种调试方法介绍
- Ionic系列——调用摄像头拍照和选择图库照片功能的实现
- Ionic系列——支付
- Ionic系列——极光推送
- Node系列——Node第三方模块使用总结
- Css3系列——css3新特性学习笔记
- Mongodb系列——Mongodb事务
- DevOps系列——Gogs和Jenkins的CI配置
- Android 常用效果(各种进度条,酷炫loading动画,火箭升空,撒花以及趋势图)
- Android中自定义Activity和Dialog的位置大小背景和透明度等
- 图解Android触摸事件分发
- android LayoutInflater.inflate()的参数及其用法
- Android 控件未渲染完成操作控件错误解决方案