ionic App问题总结系列之ionic点击系统返回键退出App
发布时间 - 2026-01-11 02:52:25 点击率:次在安卓下,如果不处理系统返回键的事件,那么每次点击返回键,将页面将返回到上一个路由,这种逻辑不符合app的路由逻辑。正确的应该是:当页面到了各个导航页的首页时,此时再按返回键应该提示是否退出app,用户点击确认后退出app。

在run()方法中添加下面的方法
$ionicPlatform.registerBackButtonAction(function (e){
//阻止默认的行为
e.preventDefault();
// 退出提示框
function showConfirm() {
var servicePopup = $ionicPopup.show({
title: '提示',
subTitle: '你确定要退出应用吗?',
scope: $rootScope,
buttons: [
{
text: '取消',
type: 'button-clear button-assertive',
onTap: function () {
return 'cancel';
}
},
{
text: '确认',
type: 'button-clear button-assertive border-left',
onTap: function (e) {
return 'active';
}
},
]
});
servicePopup.then(function (res) {
if (res == 'active') {
// 退出app
ionic.Platform.exitApp();
}
});
}
// 判断当前路由是否为各个导航栏的首页,是的话则显示提示框
if ($location.path() == '/index' || $location.path() == '/product' || $location.path() == '/account' || $location.path() == '/more') {
showConfirm();
} else if ($ionicHistory.backView()) {
$ionicHistory.goBack();
} else {
showConfirm();
}
return false;
}, 101); //101优先级常用于覆盖‘返回上一个页面'的默认行为
$ionicPlatform.registerBackButtonAction()
该方法是用来注册系统返回键事件。每次点击只会执行最高优先级的那个行为。比如当页面存在一个modal框的时候,此时点击系统返回键则是关闭modal框,而不是返回上个视图。
ionic官方已经定义了常用的行为的优先级:
- 返回上个视图=100;
- 关闭侧栏菜单=150;
- 关闭Modal=200;
- 关闭 action sheet=300;
- 关闭popup=400;
- 关闭loading=500;
用法如下:
registerBackButtonAction(callback, priority, [actionId])
所以当你要重写ionic官方定义上面那些行为,你只需要设置优先级大于那些行为的优先级即可。比如你要覆盖的是返回上个视图的行为,那么你只需要传入的proirity的值大于100(同时要小于150)即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ionic
# 返回键退出
# 返回键
# 退出app
# ionic2.0双击返回键退出应用
# ionic监听android返回键实现“再按一次退出”功能
# 三步实现ionic3点击退出app程序
# ionic3双击返回退出应用的方法
# ionic+html5+API实现双击返回键退出应用
# 上个
# 你要
# 首页
# 的是
# 你只需要
# 则是
# 只会
# 重写
# 不符合
# 时要
# 大家多多
# 再按
# 而不是
# 应该是
# 是用来
# 导航页
# return
# title
# subTitle
# assertive
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
html如何与html链接_实现多个HTML页面互相链接【互相】
WordPress 子目录安装中正确处理脚本路径的完整指南
免费视频制作网站,更新又快又好的免费电影网站?
微信小程序 配置文件详细介绍
如何在Tomcat中配置并部署网站项目?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何在建站之星网店版论坛获取技术支持?
Android okhttputils现在进度显示实例代码
如何在香港服务器上快速搭建免备案网站?
公司网站制作价格怎么算,公司办个官网需要多少钱?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Laravel如何使用Telescope进行调试?(安装和使用教程)
Linux网络带宽限制_tc配置实践解析【教程】
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
如何用AWS免费套餐快速搭建高效网站?
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
焦点电影公司作品,电影焦点结局是什么?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
Laravel怎么在Controller之外的地方验证数据
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何确认建站备案号应放置的具体位置?
个人网站制作流程图片大全,个人网站如何注销?
UC浏览器如何设置启动页 UC浏览器启动页设置方法
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
,网页ppt怎么弄成自己的ppt?
简历在线制作网站免费版,如何创建个人简历?
如何在IIS7上新建站点并设置安全权限?
Laravel如何实现模型的全局作用域?(Global Scope示例)
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何获取PHP WAP自助建站系统源码?
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
PHP正则匹配日期和时间(时间戳转换)的实例代码
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
JavaScript常见的五种数组去重的方式
制作旅游网站html,怎样注册旅游网站?
如何在阿里云ECS服务器部署织梦CMS网站?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
使用C语言编写圣诞表白程序
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
Swift中循环语句中的转移语句 break 和 continue
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
利用JavaScript实现拖拽改变元素大小
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
微信推文制作网站有哪些,怎么做微信推文,急?

