当前位置: 首页 > 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.lryc.cn/news/585418.html

相关文章:

  • 【工具变量】全国省市区县土地出让结果公告数据(2000-2024年)
  • 飞算 JavaAI 体验:重塑 Java 开发的智能新范式
  • UE5多人MOBA+GAS 18、用对象池来设置小兵的队伍的生成,为小兵设置一个目标从己方出生点攻打对方出生点,优化小兵的血条UI
  • Go语言WebSocket编程:从零打造实时通信利器
  • Script Error产生的原因及解法
  • 鸿蒙app 开发中的 map 映射方式和用法
  • STM32F103之存储/启动流程
  • R² 决定系数详解:原理 + Python手写实现 + 数学公式 + 与 MSE/MAE 比较
  • MCU芯片内部的ECC安全机制
  • 上位机知识篇---Docker
  • 新型变种木马正在伪装成Termius入侵系统
  • OpenCV多种图像哈希算法的实现比较
  • 什么是IP关联?跨境卖家如何有效避免IP关联?
  • DOM编程实例(不重要,可忽略)
  • 从Excel到PDF一步到位的台签打印解决方案
  • 扫描文件 PDF / 图片 纠斜 | 图片去黑边 / 裁剪 / 压缩
  • cnpm exec v.s. npx
  • Java基础-String常用的方法
  • 用AI做带货视频评论分析【Datawhale AI 夏令营】
  • 进程管理中的队列调度与内存交换机制
  • MinIO配置项速查表【五】
  • 云原生周刊:镜像兼容性
  • 「Linux命令基础」Shell命令基础
  • 从零到一:深度解析汽车标定技术体系与实战策略
  • React 的常用钩子函数在Vue中是如何设计体现出来的。
  • WinForm三大扩展组件:ErrorProvider、HelpProvider、ToolTipProvider详解
  • Apache Cloudberry 向量化实践(二):如何识别和定位向量化系统的性能瓶颈?
  • 资源分享-FPS, 矩阵, 骨骼, 绘制, 自瞄, U3D, UE4逆向辅助实战视频教程
  • Oracle 数据库 Dblink
  • PySpark中python环境打包和JAR包依赖