博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ionic实现双击返回键退出功能
阅读量:6249 次
发布时间:2019-06-22

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

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

步骤一:

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

转载于:https://www.cnblogs.com/fujinliang/p/6077705.html

你可能感兴趣的文章
Innosetup中将bat文件压缩到压缩包中
查看>>
Android 手机卫士--签名文件说明&包名说明
查看>>
[转]python中@classmethod @staticmethod区别
查看>>
Linux排序不准确的问题,用以下两行代码解决
查看>>
MyBatis从入门到放弃一:从SqlSession实现增删改查
查看>>
为apache安装mod_wsgi的时候出现-fpic的问题
查看>>
Node,Sockets,Cores,Threads
查看>>
java数组和字符串相互转换
查看>>
深刻理解Nginx之Nginx完整安装
查看>>
SelectSort
查看>>
实现浮点数的四舍五入RoundOff,保留几位小数
查看>>
Netty ByteBuf源码分析
查看>>
EWS 流通知订阅邮件
查看>>
Vuex实现原理解析
查看>>
Vue工程模板文件 webpack打包
查看>>
反射获取有参数的成员方法并执行
查看>>
解决Apache配置虚拟主机时出现403错误的问题
查看>>
TP框架中APP_SUB_DOMAIN_DEPLOY什么意思?
查看>>
DirectUI的优点及其自定义控件的开发
查看>>
用UglifyJS2合并压缩混淆JS代码
查看>>