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

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.xdnf.cn/news/15259.html

相关文章:

  • 学习笔记(34):matplotlib绘制图表-房价数据分析与可视化
  • 【数据结构与算法】203.移除链表元素(LeetCode)图文详解
  • 05 唤醒词检测:让语音助手随时待命
  • 平板柔光屏与镜面屏的区别有哪些?技术原理与适用场景全解析
  • Kotlin 常用语法糖完整整理
  • 如何准确查看服务器网络的利用率?
  • 云防火墙有什么用?
  • SoC程序如何使用单例模式运行
  • 企业网络安全的“金字塔”策略:构建全方位防护体系的核心思路
  • OSCP官方靶场-Solstice WP
  • AI驱动的业务系统智能化转型:从静态配置到动态认知的范式革命
  • 【办公类-107-01】20250710视频慢速与视频截图
  • mysql join语句、全表扫描 执行优化与访问冷数据对内存命中率的影响
  • MySQL索引:数据库的超级目录
  • 第35周—————糖尿病预测模型优化探索
  • Android 插件化实现原理详解
  • Apache Dubbo实战:JavaSDK使用
  • 动态物体滤除算法
  • MyBatis-Plus 中使用 Wrapper 自定义 SQL
  • Linux C 文件基本操作
  • 【oscp】超长攻击链vulhub靶机,TommyBoy1dot0
  • 登录为图片验证时,selenium通过token直接进入页面操作
  • ResolvableType 解密Java泛型反射
  • 【会员专享数据】2013-2024年我国省市县三级逐月SO₂数值数据(Shp/Excel格式)
  • 深入拆解Spring核心思想之一:IoC
  • 北京-4年功能测试2年空窗-报培训班学测开-第四十七天
  • 常见射频电路板工艺流程
  • Spring Boot项目中大文件上传的高级实践与性能优化
  • 打破技术债困境:从“保持现状”到成为变革的推动者
  • 机器学习11——支持向量机上