ionic监听android返回键(实现“再按退出”功能)返回按钮退出应用程序以提高体验优化。1、该函数需要我们使用ionic提供的registerBackButtonAction方法(注册硬件后退按钮动作)registerBackButtonAction(callback,priority,[actionId])参数类型说明回调函数在点击后退按钮时触发,如果监听有thehighestpriorityLevelprioritynumber只有最高优先级的才会被执行注销backButtonAction。如果我们不想注册后退按钮影响所有页面,我们需要再次调用返回函数。例如:如果上拉菜单已经显示,后退按钮应该关闭上拉菜单,而不是返回到页面视图或关闭打开的模型。所以我们要实现“再按退出app”的功能,我们可以设置优先级为1012,代码在js中实现angular.module("app").run(["$rootScope","$ionicPlatform","$location","$ionicHistory",function($rootScope,$ionicPlatform,$location,$ionicHistory){"usestrict";//当用户在主页并按下返回键时,会给出提示,如果在2s内再次启动return键,退出appcordova的cordova-plugin-x-toast,ionic也可以使用$rootScope.exitApp=true;constdelay=2000;setTimeout(()=>{$rootScope.exitApp=false;},delay);}//判断当前路由是否为project,mission,mine,message这些主要页面functionisExitPage(){letpath=$location.path(),state=_.last(path.split("/")),ary=["project","mission","mine","","message"];return_.includes(ary,state);}//注册返回事件函数registerBackButton(event){event.preventDefault();$cordovaKeyboard.isVisible()&&$cordovaKeyboard.close();如果(isExitPage()){$rootScope.exitApp&&ionic.Platform.exitApp();!$rootScope.exitApp&&showTipMsg();}else{$ionicHistory.goBack();}返回假;}//离子环境准备就绪ionic.Platform.ready(()=>{try{constpriority=101;$ionicPlatform.is("Android")&&$ionicPlatform.registerBackButtonAction(registerBackButton,priority);}catch(e){console.warn("应用程序正在浏览器中运行导致检查失败。");}});}]);这样我们就可以轻松实现一个“再按退出app功能”
