需求:在当前页面做盘点工作,未保存当前页面数据时退出该页面,需要弹窗提示用户使用保存后再关闭页面
该代码可拦截:点击导航栏返回、滑动返回、安卓物理返回键和调用 navigateBack 接口
效果图:
代码:写在你需要返回监听的同一个页面就行了
注意:page-container组件直接使用 不用引入(是微信官方的页面容器)
<view v-if="isShow">
<page-container :show="isShow" :overlay="false" @beforeleave="beforeleave"></page-container>
</view>
data() {
return {
isShow: true,
};
},
直接调用 beforeleave方法进行操作(监听页面返回)
beforeleave() {
this.isShow = false; //这个很重要,一定要先把弹框删除掉
uni.showModal({
confirmColor:'#bd3124',
title: "您盘点的商品尚未保存,是否保存后再离开页面?",
success: (e) => {
if (e.confirm) {
console.log('确认盘点接口');
// 返回上一页
uni.navigateBack({
delta: 1
})
} else {
uni.navigateBack({
delta: 1
})
}
}
})
},