微信小程序如何自定义返回上一页
日期:2018-09-20
来源:程序思维浏览:6131次
在做微信小程序开发的时候有几种路由的跳转方式,其中有一种可以自带返回,但是想自己定义返回按钮要怎么做呢?

先介绍三种跳转方式:
1.B页面自带返回按钮
wx.navigateTo(OBJECT) 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面
2.B页面不带返回按钮
wx.redirectTo(OBJECT) 关闭当前页面,跳转到应用内的某个页面。
3.B页面不带返回按钮
wx.switchTab(OBJECT) 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
自己在B页面人工添加返回按钮到A页面
wxml:
bindtap="navigateBack"
js:
navigateBack: function () {
var self = this;
var pages = getCurrentPages();
if (pages.length == 1) {
if (self.data.circleId && self.data.circleId >0) {
wx.redirectTo({
url: '../../circle/index/index?circleId=' + self.data.circleId
+ '&circleName=' + (self.data.circleName || '')
});
} else {
wx.switchTab({
url: "../../home/grouplist/grouplist"
});
}
} else {
wx.navigateBack({ changed: true });//返回上一页
}
},
题外话:
1、A -> B -> C C直接返回A
A -> B 通过 wx.navigateTo 跳转
B -> C 通过 wx.redirectTo 跳转.跳转触发后 B 页面就会被销毁, C 页面再返回 wx.navigateBack 就会直接到 A 了
2、A -> B -> C 返回效果C -> B -> A
正常 A -> B -> C 都是通过 wx.navigateTo 跳转的,所以 wx.navigateBack 只能返回上一界面

先介绍三种跳转方式:
1.B页面自带返回按钮
wx.navigateTo(OBJECT) 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面
2.B页面不带返回按钮
wx.redirectTo(OBJECT) 关闭当前页面,跳转到应用内的某个页面。
3.B页面不带返回按钮
wx.switchTab(OBJECT) 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
自己在B页面人工添加返回按钮到A页面
wxml:
bindtap="navigateBack"
js:
navigateBack: function () {
var self = this;
var pages = getCurrentPages();
if (pages.length == 1) {
if (self.data.circleId && self.data.circleId >0) {
wx.redirectTo({
url: '../../circle/index/index?circleId=' + self.data.circleId
+ '&circleName=' + (self.data.circleName || '')
});
} else {
wx.switchTab({
url: "../../home/grouplist/grouplist"
});
}
} else {
wx.navigateBack({ changed: true });//返回上一页
}
},
题外话:
1、A -> B -> C C直接返回A
A -> B 通过 wx.navigateTo 跳转
B -> C 通过 wx.redirectTo 跳转.跳转触发后 B 页面就会被销毁, C 页面再返回 wx.navigateBack 就会直接到 A 了
2、A -> B -> C 返回效果C -> B -> A
正常 A -> B -> C 都是通过 wx.navigateTo 跳转的,所以 wx.navigateBack 只能返回上一界面
精品好课