先说一下我的需求:
1、用户未登录的情况下,碰到需要登录的接口,跳转到登录页面
2、用户登录成功,返回原页面
3、用户不想登录,返回到原来的页面的上一个页面 (通过页面栈来实现,在需要登录的页面判断上一个页面是不是登录页并且没有登录,如果是的话直接返回上上个页面)
话不多说,直接上代码(这里只实现控制跳转登录页的次数)
//登录前的页面,也就是需要获取用户信息的页面
data(){
return {
loginIndex:1, // 用来记录跳转到登录页的次数
}
},
onShow:{
this.getData()
},
methods:{
getData(){
if(this.Flag = false){ // 如果已经登录
//执行登录成功的正常操作
}else{
if(this.loginIndex<2){ // 如果没有登录,并且跳转至登录页的次数不超过2
this.loginIndex++;
uni.navigateTo({
url: "../../subPackages/page/login/login?pageName=mine"
})
}
}
},
}
简单说,就是通过判断跳转次数来控制是不是还要继续跳转。这样设置的话,手动点击按钮触发跳转到登录页也是可以的。
之前进入思维旋涡,一味的想通过微信的返回操作来实现,但是微信小程序没有返回操作的api,尝试过onUnload,但是不能满足项目所需