返回时弹出提示
如果用户点击dddd则不需要在弹提示框
<view bindtap="zuzhi">dddddddddddddd</view>
data: {
//isAlert:true
// 通过此字段判断是否需要隐藏弹窗,默认true显示,false隐藏
},
onLoad: function (options) {
wx.enableAlertBeforeUnload({
message: "返回上页时弹出对话框",
success: function (res) {
console.log("成功:", res);
},
fail: function (err) {
console.log("失败:", err);
},
});
},
zuzhi:function(){
//this.setData({
//isAlert:false
//})
wx.disableAlertBeforeUnload() //关闭小程序页面返回询问对话框
console.log('不弹窗')
},
参考:
wx.enableAlertBeforeUnload
返回跳转到指定页面
onUnload: function () {
//wx.reLaunch跳到新页面没有返回箭头
//用wx.redirectTo,wx.navigateTo试试
wx.reLaunch({
//这里url搞相对路径
url: '../me/order-detail',
})
},
返回并刷新上个页面
A列表页跳转到详情页B,从B返回A时需要A实现刷新页面重新获取数据。
在B页面添加获取界面栈的代码
var pages = getCurrentPages();
if (pages.length > 1) {
var prevPage = pages[pages.length - 2]; //上一个页面
//更新上一个页面列表数据为空
prevPage.setData({
"list": []
})
//返回上一个页面更新数据
wx.navigateBack({
delta: 1,
success: function (e) {
if (prevPage == undefined || prevPage == null) return;
// prevPage.onLoad();
//关键在这里,这里面是触发上个界面
prePage.changeData()
}
})
}
在A页面定义刷新页面的事件
注意这个函数并不是在onload里面,应该和onload是同级目录
changeData: function (historyArr) {
// 刷新事件,根据需求自定义
}
返回及刷新当前页面
if (getCurrentPages().length != 0) {
getCurrentPages()[getCurrentPages().length - 1].onLoad()
}
页面返回会数据丢失的问题
小程序的页面层级最多五层,如果超过了五层,第五层的页面会被销毁,当页面回退的时候,上一级的页面需要重新创建,所以原来页面上的数据就会丢失。
所以你可以使用 redirectTo 来代替 navigateTo 关闭当前页面,跳转到应用内的某个页面。