需求场景
当在一个表单页面 填写了很多数据,或者编辑页面数据发生变动之后,这时候返回上一个页面需要提醒用户是否返回的弹框文章来源地址https://www.toymoban.com/news/detail-767412.html
实现方法一(ios会存在一定的问题)
- 在onLoad生命周期里 注册
wx.enableAlertBeforeUnload({
message: "您内容已更新,还没保存,确定要退出吗?",
success: function (res) {
},
fail: function (err) {
console.log("失败:", err);
},
});
- 当你修改数据之后 又把数据还原 此时数据是没有发生改变的 这时候返回上一个页面是不需要阻止用户出现确定弹框的,在你修改数据的判断是否与老数据一致的逻辑中添加如下代码 注销 刚才在onload 生命周期里面的弹框事件,此时返回上一个页面是不会阻止用户
wx.disableAlertBeforeUnload()
方法二
- 1.在编辑页面添加如下代码
<view class="" v-if="showPage">
<page-container :show="showPage " :overlay="false" @beforeleave="beforeleave">
</page-container>
</view>
-
- 在data里面 定义showPage 默认为false
-
- 在你判断数据是否发生改变的逻辑中 如果需要提醒用户 this.showPage = true
-
- beforeleave回调 写在methods里
beforeleave() {
this.showPage = false
uni.showModal({
title: 内容发生改变,确定要退出吗?,
success: (e) => {
if (e.confirm) {
uni.navigateBack(1)
} else {
//点击取消之后再次开启弹框阻止用户
this.showPage = true
}
},
})
},
文章来源:https://www.toymoban.com/news/detail-767412.html
到了这里,关于微信小程序阻止返回事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!