微信小程序阻止页面返回(包滑动、自动返回键)
这个场景还是挺有意思的,比如某多多,只要你点左上角的返回 好家伙,满满又 花不了 的优惠券就来了,让你拥有一种消费最划算的感觉。
如果你的场景比较简单,只是对左上角的返回进行监听,只需要关闭自带的导航栏,手写导航栏或用ui库的写好的导航栏就好了。然后给写好的导航栏的返回按钮添加一个返回的事件做自己想要实现的场景就好了。
一、自定义导航栏
自定义导航栏配置:
{"path": "pages/login/login","style": {
+ "navigationStyle": "custom"}
}
二、 wx.enableAlertBeforeUnload
如果你的场景点击返回时只用来提示一下用户 类似于用一个showModel(提示框)的展示效果,可以使用wx.enableAlertBeforeUnload,只要一点击左上角的返回就会触发当前事件,如果点击确定退出当前页,如果点击取消留在当前页面。
onLoad(e) {uni.enableAlertBeforeUnload({message: "返回上页时弹出对话框",success: function (res) {console.log("点击确认按钮了:", res);},fail: function (errMsg) {console.log("点击取消按钮了:", errMsg);},})},
三、page-container
如果你的场景比较复杂,手机都会有自带的滑动返回,例如ios的滑动返回,安卓的滑动返回和back返回键,就需要用到page-container,他的效果类似于弹窗的形式存在着。
<page-container :show="true" :duration="false" :overlay="false">存放内容
</page-container>
当点击返回按钮时 会先执行把当前的page-container给隐藏掉,再次点击返回时才能够返回上一页。

在正常逻辑下 如果想要优惠券只弹出一次,只需要把page-container 放在外面 于内容隔离开,当点击关闭时先把page-container给隐藏掉,并不会触发当前页的返回,当关闭page-container时会有离开前的事件,只需要在离开前的事件中添加对应的显示优惠券逻辑即可。
<template><view ><scroll-view scroll-y="true" style="height: 100vh;" :scroll-top="top" class="mainBox" @scroll="scroll"><view class="" v-for="item in 99">我是内容</view></scroll-view><page-container :show="true" :duration="false" :overlay="false" @beforeleave="beforeleave"></page-container></view>
</template>methods:{beforeleave(){uni.showModal({title:'弹出优惠券逻辑'})},
}

如果呢 你这个项目比较特别特别的恶心,只要你点击左上角的返回我就不让你出去,什么时候点击我指定的返回你才够出去,什么都得听我的! 实现思路也是一直在原地进入当前页面。好处就是我能知道你想要返回了,确定就是会有一个进入的加载效果。
完整代码
<template><page-container :show="isShow" :duration="false" :overlay="false" @beforeleave="beforeleave" @afterleave="afterleave" ><scroll-view scroll-y="true" style="height: 100vh;" :scroll-top="top" class="mainBox" @scroll="scroll"><view class="back" @click="back">指定返回按钮</view><view class="" v-for="item in 99">我是内容</view></view></scroll-view></page-container>
</template><script>export default {data() {return {isShow:true, top:0,scrollTop:0,}},onLoad(e) {this.top = e.top},methods: {back(){this.isShow = falseconsole.log('点击返回了');uni.navigateBack()},beforeleave(){if(!this.isShow) return uni.navigateBack()console.log('点击返回了');uni.redirectTo({url:`/pages/mine/test?top=${this.scrollTop}`,fail(err) {console.log(err);}})},// 需要在退出一次 否则退不出去afterleave(){if(!this.isShow) return uni.navigateBack()},// 记录当前位置 下次进来时自动转到刚才的位置scroll(e){this.scrollTop = e.target.scrollTop}},}
</script>

相关文章:
微信小程序阻止页面返回(包滑动、自动返回键)
这个场景还是挺有意思的,比如某多多,只要你点左上角的返回 好家伙,满满又 花不了 的优惠券就来了,让你拥有一种消费最划算的感觉。 如果你的场景比较简单,只是对左上角的返回进行监听,只需要关闭自带的导航…...
视频直播美颜sdk的发展史
视频直播美颜sdk的出现是必然的,它的诞生就是为了让更多用户能够更好地体验到视频直播带给大家的快乐,可以说视频直播美颜sdk的发展和用户体验有着紧密联系。今天,小编不聊技术,咱们来聊一下视频直播美颜sdk的诞生以及发展历程。 …...
【Mysql】存储过程
【Mysql】存储过程 文章目录【Mysql】存储过程1.存储过程1.1 存储过程概述1.2 特点1.3 基本语法1.3.1 创建1.3.2 调用1.3.3 查看1.3.4 删除1.4 变量1.4.1 系统变量1.4.2 用户定义变量1.4.3 局部变量1.5 if1.6 参数1.7 case1.8 循环1.8.1 while1.8.2 repeat1.8.3 loop1.9 游标1.…...
Day895.MySql误删数据还原方案 -MySQL实战
MySql误删数据还原方案 Hi,我是阿昌,今天学习记录的是关于MySql误删数据还原方案的内容。 传统的高可用架构是不能预防误删数据的,因为主库的一个 drop table 命令,会通过 binlog 传给所有从库和级联从库,进而导致整…...
Java方法引用
2 方法引用 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿参数做操作那么考虑一种情况: 如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,没有必要再写重复逻辑,如usePrintable…...
C++教程之迭代器Iterator
前言 之前的两篇文章我们主要了解了vector和string的相关知识,从中我们知道可以通过下标来访问vector的元素或者string的字符,但是除了这种方式还有一种更为通用的方式获取元素,那就是迭代器,这篇文章就会简单介绍迭代器的相关内…...
容联七陌:ChatGPT大模型能力为智能客服带来新方向
科技云报道原创。 近几个月来,大众对ChatGPT预期的持续走高,也影响到了智能客服领域公司的命运。 一方面,ChatGPT的出现为智能客服场景带来了更加“智能”的可能性;但另一方面,有人认为ChatGPT完全可以替代现有的智能…...
【Linux 多线程同步】使用同步和互斥实现生产消费模型
目录 1.同步的接口 2.多线程但是按顺序来执行 3.生产消费模型 4.使用互斥加同步实现生产消费模型 (采用环形队列) 同步:在保证数据安全的前提下,让线程能够按照某种特定的顺序访问临界资源,从而有效避免饥饿问题 …...
【TypeScript】TypeScript的接口和对象类型(interface):
文章目录一、使用接口约束的时候不能多一个属性也不能少一个属二、重名interface 可以合并,继承三、可选属性 使用?操作符四、任意属性 [propName: string]五、只读属性 readonly,是不允许被赋值的只能读取六、添加函数一、使用接口约束的时候不能多一个…...
7、函数与异常
目录一、函数的概念二、匿名函数三、闭包四、defer五、异常机制一、函数的概念 函数的基本形式 //函数定义。a,b是形参 func argf(a int, b int) { a a b } var x, y int 3, 6 argf(x, y) //函数调用。x,y是实参函数参数: func arg2(a, b int) { //参数类型相…...
Julia 语言环境安装
Julia 语言支持以下系统: LinuxFreeBSDmacOSWindowsAndroid Julia 安装包下载地址为:Download Julia。 Github 源码地址:GitHub - JuliaLang/julia: The Julia Programming Language。 国内镜像地址:Index of /julia-releases/…...
5.1 线程
文章目录1.概述2.多线程的特性2.1 随机性2.2 CPU分时调度2.3 线程的状态2.4 线程状态与代码对照3.多线程代码实现方式1:继承Thread3.1 概述3.2 常用方法3.3 测试多线程的创建方式14.多线程代码实现方式2:实现Runnable接口4.1 概述4.2 常用方法4.3 练习2:测试多线程的…...
通讯录的实现
一、目的:使用C实现通讯录二、包含功能:添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人显示联系人:显示通讯录中所有联系人信息删除联系人:按照姓名进行删除指定联系人…...
Urho3D导航
Urho3D通过使用Recast和Detour库实现导航网格生成和路径查找。 导航功能通过NavigationMesh和Navigable组件公开。 NavigationMesh从已使用Navigable组件标记的子节点收集几何体。默认情况下,可导航组件的行为是递归的:除非禁用递归,否则也…...
【学习总结】激光雷达与相机外参标定:代码(cam_lidar_calibration)
前段时间尝试了一款激光雷达和相机标定的代码,总结了博客: 【学习总结】激光雷达与相机外参标定:原理与代码 但总觉得那个代码太差劲,而且精度不行,于是又找了些新的代码,体验比之前的好很多,在…...
车载技术开发—{Android CarFrameWork}
Android Automotive平台 Android Automotive是通过Android的通用框架,语言和API来实现的一个全栈,开源,高度可定制的平台。 Android Automotive与整个Android生态系统的关系 Android Automotive是Android的一部分。 Android Automotive不是…...
多城市二手车买卖发布管理小程序开发
多城市二手车买卖发布管理小程序开发 功能特性: 为你介绍二手车微信小程序的功能特性。 车辆分类搜索,支持按品牌、售价、年龄、上牌时间、排量等筛选。 车源发布,支持用户一键发布二手车,平台审核上线,发布可编辑、删除等操作。…...
企业级信息系统开发学习笔记1.2 初探Spring——利用组件注解符精简Spring配置文件
文章目录零、本讲学习目标一、课程引入二、打开项目 - SpringDemo三、利用组件注解符精简Spring配置文件(一)创建新包(二)复制四个类(三)修改杀龙任务类(四)修改救美任务类ÿ…...
37、基于51单片机乒乓球比赛系统设计
摘要 乒乓球游戏电路是一个对输入信号、输入时机正确与否的8个LED表示乒乓球球台和乒乓球,用数码管模拟显示器,显示比赛局数比分和每局玩家得分的电路。电路并不复杂,整体分为两个模块:一,游戏主模块;二&a…...
VMware虚拟机安装Win11最详细过程以及遇到的这台电脑无法运行Windows11的问题
准备工作 在使用VMware虚拟机安装Win11之前我们先把准备工作做好,以免后续思绪混乱导致出错。 1. 到VMware官网或点击链接下载正版VMware Workstation 16 Pro。 2. 双击打开安装包,点击下一步。 3. 阅读用户许可协议,勾选我接受许可协议中的…...
AI Agent在数据分析领域应用研究
我个人是从技术做到管理,从实施做到咨询,从售前做到销售,在技术领域来说我最擅长的就是数据技术。在大学时我学过Oracle 6.0,参加工作后又到清华大学参加过Oracle 8i培训,接着又做过Oracle DBA,后来又做数据…...
echarts环形饼图自定义边框、标题及图例
目录 1、官网找示例 2、初步改造有个雏形 3、细节改造和优化 4、全部代码 5、原始效果和最终效果对比 看下效果图,和普通的饼图很明显的区别就是: 1有明显的白色边框线 2圆环中心自定义内容标题 3需要设置图例位置与内容 我通常的实现思路就是官网找例子再一步一步改…...
Spring Data测试终极指南:Testcontainers集成测试与Mock数据策略详解
Spring Data测试终极指南:Testcontainers集成测试与Mock数据策略详解 【免费下载链接】spring-data-examples Spring Data Example Projects 项目地址: https://gitcode.com/gh_mirrors/sp/spring-data-examples Spring Data测试是确保数据访问层可靠性的关键…...
提升Node.js应用性能:dotenv环境变量加载的终极优化指南
提升Node.js应用性能:dotenv环境变量加载的终极优化指南 【免费下载链接】dotenv Loads environment variables from .env for nodejs projects. 项目地址: https://gitcode.com/gh_mirrors/do/dotenv 在现代Node.js应用开发中,环境变量管理是确保…...
当HTTPS上传太慢时,我是如何用Minio Java SDK在后端搞定大文件分片上传的
HTTPS环境下大文件上传性能优化:基于Minio Java SDK的后端分片方案实战 最近在重构一个医疗影像存储系统时,我们遇到了一个典型的技术瓶颈:当用户通过HTTPS协议上传平均500MB的DICOM文件时,上传成功率不足60%,平均耗时…...
Qwen2.5-14B-Instruct开源模型落地:像素剧本圣殿短视频脚本批量生成
Qwen2.5-14B-Instruct开源模型落地:像素剧本圣殿短视频脚本批量生成 1. 项目概述 像素剧本圣殿(Pixel Script Temple)是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。它将顶尖的AI推理能力与8-Bit复古美学完美融合,…...
别再把AI当聊天机器人了:Claude Code之父的“15倍速”工程化工作流全拆解
在这个AI编程工具层出不穷的时代,大多数人还在纠结“哪家大模型的代码补全更准”,或者在对话框里一行行地复制粘贴代码。然而,Anthropic工程师、Claude Code的缔造者Boris Cherny最近在X上公开的一套工作流,直接震碎了开发者社区的…...
Windows和Office激活终极解决方案:KMS_VL_ALL_AIO完全指南
Windows和Office激活终极解决方案:KMS_VL_ALL_AIO完全指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否厌倦了Windows系统频繁弹出激活提醒?是否因为Office软件…...
Apache DolphinScheduler 三月大动作,你知道几个?
嘿!2026 年 3 月 月报来啦!Apache DolphinScheduler 社区超给力~ 13 位小伙伴踊跃贡献代码,发布了 3.4.1 昕版本,调度增强、任务插件升级,还优化 API 与 UI,修复超 15 个 Bug。 与此同时,基础设…...
N_m3u8DL-RE:跨平台流媒体解决方案的全方位技术指南
N_m3u8DL-RE:跨平台流媒体解决方案的全方位技术指南 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE …...
