跳转至

返回不同的页面判断

以下内容由 ChatGPT 输出

如果你是使用微信小程序的原生返回按钮(左上角返回),可以通过监听页面的 onUnload 生命周期方法来实现区分返回逻辑。

以下是具体实现方案:


方案:通过 onUnload 判断来源

1. 从答题页面跳转时传递标识参数

从答题页面跳转到报告列表时,添加一个标识参数 from=quiz

// 从答题页面跳转到报告列表页面
uni.navigateTo({
    url: '/pages/report-list/report-list?from=quiz'
});

2. 在报告列表页面判断来源

在报告列表页面中,通过页面参数判断来源,并在 onUnload 中处理返回逻辑。

export default {
    data() {
        return {
            fromPage: '' // 保存来源标识
        };
    },
    onLoad(options) {
        // 获取跳转来源
        this.fromPage = options.from || ''; // 如果没有参数,默认是空
    },
    onUnload() {
        // 监听页面卸载(用户点击返回按钮触发)
        if (this.fromPage === 'quiz') {
            // 如果是从答题页面进入,返回主页
            uni.switchTab({
                url: '/pages/home/home'
            });
        }
    }
};

3. 直接进入报告列表页面

如果用户直接进入报告列表页面(没有 from 参数),点击返回时会自动返回上一页,无需额外处理。


注意点

  1. switchTab 的限制:确保主页是 tabBar 页面,否则会报错。
  2. 页面返回顺序逻辑onUnload 仅在页面卸载时触发,如果页面栈中存在多个页面,返回上一页时逻辑会自动生效。

这样,你就可以根据用户是从答题页面跳转过来的,还是直接进入报告列表页面,决定返回逻辑。如果有其他细节需求,我们可以进一步优化! 😊

其他

uni.navigateBack({
    delta: 99
});