小程序怎么实现用户没登录跳转到登录页面不能返回
时间: 2023-10-04 14:04:47 浏览: 66
实现方式如下:
1. 在小程序的app.js文件中,监听小程序的全局错误事件onError。
2. 当出现错误时,判断错误类型是否为“TypeError: Cannot read property 'userInfo' of undefined”,即用户未登录。
3. 若是用户未登录,则跳转到登录页面,同时使用wx.redirectTo()方法将当前页面栈清空,使用户无法通过左上角返回按钮返回上一页面。
4. 在登录成功后,可以使用wx.navigateBack()方法返回到上一页面。
以下是示例代码:
```
// app.js
App({
onError(error) {
if (error && error.message.includes("Cannot read property 'userInfo' of undefined")) {
wx.redirectTo({
url: '/pages/login/login',
complete() {
// 清空页面栈,禁止页面返回
const pages = getCurrentPages();
if (pages.length > 0) {
const currentPage = pages[pages.length - 1];
currentPage.setData({
canNavigateBack: false,
});
}
},
});
}
},
});
```
```
// login.js
Page({
handleLoginSuccess() {
// 登录成功后,允许页面返回
const pages = getCurrentPages();
if (pages.length > 0) {
const currentPage = pages[pages.length - 1];
currentPage.setData({
canNavigateBack: true,
});
}
wx.navigateBack();
},
});
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)