在开发过程中遇到有流程的页面,左上角返回可以指定返回的页面,但是物理返回键就没法干预了,大概的逻辑是这样的A->B-C,C页面使用物理返回键返回至A页面,A页面再返回不会返回至C页面,花费一点时间看了微信小程序文档,经过自己摸索发现wx.redirectTo可以实现该需求。
C页面代码
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
wx.redirectTo({
url: 'A页面相对路径?back=1'
})
}
由于使用redirectTo,页面栈会新添加A页面,如果不使用navigateBack,会导致A页面返回还是A页面,综上所述,在redirectTo路径上添加标识就可解决
A页面代码
onLoad(options) {
// 监听结果页物理返回事件
if (options.back) {
wx.navigateBack({
delta: 1
})
}
},
完美解决销毁中间页的问题,感兴趣的朋友可以留言讨论。