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

微信小程序返回上一页监听

本文实现的是微信小程序在返回上一页时获取通知并自定义业务。

最简单的实现:

使用 wx.enableAlertBeforeUnload() 

优点:快速接入

缺点:手势不能识别、无法自定义弹窗内容(仅询问)

方法二:

page-container + 自定义返回点击

page-container有个好处,能识别返回操作包括三种情形,右滑手势、安卓物理返回键和调用 navigateBack 接口

唯一的缺点就是PC端打开小程序时,点击左上角的返回无法触发。

直接上代码(使用了TDesign 微信小程序组件库,可自行替换):

wxml:

<view><page-container show="{{visible}}" overlay="{{false}}" bind:beforeleave="onBeforeLeave"></page-container><view class="block"><t-navbart-class-placeholder="t-navbar-placeholder"t-class-content="t-navbar-content"title="标题文字2"t-class-title="nav-title"><view slot="left"><t-iconsize="48rpx"bind:tap="onNavigateBack"aria-role="button"aria-label="返回"name="chevron-left"/></view></t-navbar></view><text>test</text><t-dialogvisible="{{imageOnMiddleWithImage}}"confirm-btn="{{ {content: '确定', variant: 'base' } }}"cancel-btn="取消"bind:confirm="confirnDialog"bind:cancel="closeDialog"><t-image slot="top" id="loading-img" shape="round" width="72" height="72" /></t-dialog>
</view>

js:

Page({/*** 页面的初始数据*/data: {visible: true,imageOnMiddleWithImage: false,backTime: 0,},closeDialog() {this.setData({visible: true, // 点取消,重新展示该页面imageOnMiddleWithImage: false,backTime: 1,});},confirnDialog() {wx.navigateBack({delta: 1});},onBeforeLeave() {if (this.data.backTime > 0) {this.confirnDialog()return;}this.setData({imageOnMiddleWithImage: true,});},onNavigateBack() {this.onBeforeLeave()}
})

使用自定义返回键,监听点击事件;

使用page-container特性,处理所有非点击返回情况下的返回事件。

http://www.lryc.cn/news/2394442.html

相关文章:

  • 5月31日day41打卡
  • “粽”览全局:分布式系统架构与实践深度解析(端午特别版)
  • STM32G4 电机外设篇(一) GPIO+UART
  • 代理IP在云计算中的应用:技术演进与场景实践
  • Lua 的速度为什么比 Python 快
  • 【iOS】方法交换
  • 跑步相关术语解释
  • 数据结构:线性表的基本操作与链式表达
  • C++:设计模式--工厂模式
  • 【前端优化】使用speed-measure-webpack-plugin分析前端运行、打包耗时,优化项目
  • 国产化Excel处理组件Spire.XLS教程:如何使用 C# 将 Excel(XLS 或 XLSX)文件转换为 PDF
  • B3623 枚举排列(递归实现排列型枚举)
  • vue-08(使用slot进行灵活的组件渲染)
  • Fine Pruned Tiled Light Lists(精细删减的分块光照列表)
  • 2025-5-29-C++ 学习 字符串(3)
  • openresty+lua+redis把非正常访问的域名加入黑名单
  • 使用Mathematica绘制随机多项式的根
  • IEEE PRMVAI 2025 WS 26:计算机视觉前沿 Workshop 来袭!
  • 360浏览器设置主题
  • 最卸载器——Geek Uninstaller 使用指南
  • leetcode216.组合总和III:回溯算法中多条件约束下的状态管理
  • 应急响应靶机-web3-知攻善防实验室
  • 【基于SpringBoot的图书购买系统】Redis中的数据以分页的形式展示:从配置到前后端交互的完整实现
  • Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
  • PMO价值重构:从项目管理“交付机器”到“战略推手”
  • 如何成为一名优秀的产品经理
  • [SLAM自救笔记0]:开端
  • 零知开源——STM32F407VET6驱动Flappy Bird游戏教程
  • [SC]SystemC在CPU和GPU等复杂SoC验证中的应用
  • 鸿蒙OSUniApp导航栏组件开发:打造清新简约的用户界面#三方框架 #Uniapp