当前位置: 首页 > news >正文

uniapp小程序tabbar跳转拦截与弹窗控制

一、第一步

1、App.vue中定义globalData用于全局存储状态

globalData:{needShowReleaseConfirm: false, // 标记是否需要显示发布页面确认弹窗allowReleaseJump: false ,// 标记是否允许跳转到发布页面},

2、在App.vue中的onLaunch写入监听事件

	onLaunch: function() {// 添加switchTab拦截器const app = this;uni.addInterceptor('switchTab', {invoke: (args) => {console.log('switchTab拦截器触发', args);// 获取当前页面路径const pages = getCurrentPages();if (pages.length > 0) {const currentPage = pages[pages.length - 1];const currentRoute = currentPage.route;// 判断是否跳转到release页面(从任何tabbar页面)if (args.url === '/pages/release/release') {// 如果已经允许跳转,则清除标记并正常跳转if (app.globalData.allowReleaseJump) {console.log('用户已确认,允许跳转到release页面');app.globalData.allowReleaseJump = false;app.globalData.needShowReleaseConfirm = false;return true;}console.log('检测到跳转到release,需要显示确认弹窗');// 设置全局标记,需要显示确认弹窗app.globalData.needShowReleaseConfirm = true;// 触发当前页面显示弹窗uni.$emit('showReleaseConfirm');// 阻止跳转return false;}}// 其他情况正常跳转app.globalData.needShowReleaseConfirm = false;app.globalData.allowReleaseJump = false;return true;}});},

二、第二步

我的需求是从任何tabbar页面跳转到release这个tabbar页面时都弹窗出来,点击选择后才会跳转,如图

这些弹窗需要写到跳转前的页面里,比如从index页面跳转到release页面前要弹窗,就把这个弹窗写到index页面。

1、拿index页面来实例,在index.vue页面的created中监听收到的状态,来决定是否显示弹窗。

created() {// 监听全局事件,当要跳转到发布页面时显示确认弹窗uni.$on('showReleaseConfirm', () => {console.log('收到显示发布确认弹窗事件');this.showReleaseModal = true;});},

http://www.dtcms.com/a/273599.html

相关文章:

  • Elasticsearch混合搜索深度解析(上):问题发现与源码探索
  • Excel 转 JSON by WTSolutions API 文档
  • 较为深入的了解c++中的string类(2)
  • MyBatis 从入门到实战:代理 Dao 模式下的 CRUD 全解析
  • Netplan 配置网桥(Bridge)的模板笔记250711
  • excel如何只保留前几行
  • 提示工程:解锁大模型潜力的核心密码
  • 基于redis的分布式session共享管理之销毁事件不生效问题
  • 这个方法的目的是检查一个给定的项目ID(projectId)是否在当前数据库中被使用(搜索全库)
  • SortByCustomOrder 根据指定的顺序对任意类型的列表进行排序
  • Python七彩花朵
  • 【实时Linux实战系列】实时系统测试与合规认证指南
  • 二刷 黑马点评 商户查询缓存
  • <script>标签对HTML文件解析过程的影响以及async和defer属性的应用
  • 在 React Three Fiber 中实现 3D 模型点击扩散波效果
  • 车企战略投资项目管理的实践与思考︱中国第一汽车集团进出口有限公司战略部投资管理专家庞博
  • 台球 PCOL:极致物理还原的网页斯诺克引擎(附源码深度解析)
  • 软件设计师中级逻辑公式题
  • Ubuntu 24.04上安装 Intelligent Pinyin 中文输入法
  • Java算法 -蓝桥云课 -卖货
  • 【联合国国家指标 2025:HDI、GDP、POP、面积】数据集countries_metric - Sheet1.csv
  • C++迭代器失效
  • 深入剖析Spring Bean生命周期:从诞生到消亡的全过程
  • 羲和:一款诗词风格的摆件App
  • GitHub Copilot:产品经理提升工作效率的AI助手
  • 销售数据可视化分析项目
  • AI基建还能投多久?高盛:2-3年不是问题,回报窗口才刚开启
  • Lookahead:Trie 树(前缀树)
  • TCP详解——流量控制、滑动窗口
  • 【接口测试】07 Fiddler使用教程(图文详解)