博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ionic系列——android双击退出应用和物理返回按钮隐藏键盘的实现
阅读量:6238 次
发布时间:2019-06-22

本文共 2512 字,大约阅读时间需要 8 分钟。

hot3.png

1、需求描述   

    因为要控制在返回上一页面的时候,如果有键盘,需要先隐藏键盘,所以需要自定义android手机的物理返回键单击事件,自己定义返回按钮的优先级操作,然后实现在首页面和登录页双击退出应用的操作。

2、准备

    添加插件$cordovaToast,$cordovaKeyboard

cordova plugin add https://github.com/driftyco/ionic-plugins-keyboard.gitcordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git

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);    }]);

转载于:https://my.oschina.net/u/1416844/blog/490097

你可能感兴趣的文章
Webapp下ClassLoader 加载机制
查看>>
Linux 计算机系统硬件核心知识总结
查看>>
php高级研发或架构师必了解---很多问题面试中常问到!
查看>>
使用DOM解析XML文件——构建实时地震信息列表
查看>>
据说,新闻标题"沙逼北京"总算有绝对的下联了
查看>>
易讯网售后无保障
查看>>
FF上传本地图片预览
查看>>
IO流-文件传输基础
查看>>
neo4j CQL语句
查看>>
使用 mklink把apple 备份文件从c盘转移到D盘
查看>>
构造函数
查看>>
OSPF的网络类型
查看>>
raid0 raid1 raid5 三种工作模式的工作原理及特点
查看>>
Tomcat性能调优方案
查看>>
ubuntu下安装windows下的字体
查看>>
Kubernetes ReplicationController源码分析
查看>>
八大排序算法
查看>>
北京最新小学名校排名,绝对经典!
查看>>
解决js获取innerHTML无法获取value的问题
查看>>
$(this)
查看>>