【小程序】小tips:微信小程序登录后返回登录前的页面继续操作(保留参数)

在app.js中添加如下两个方法即可:

复制代码
// 设置需要回调的地址
    setCallbackUrl: function(mode) {
        return new Promise((resolve,reject) => {
            let pages = getCurrentPages(); //获取加载的页面
            let currentPage = pages[pages.length - 1]; //获取当前页面的对象
            let urlPage = ''; // 存储的跳转地址
            let url = currentPage.route; //当前页面url
            let argumentsStr = '';
            let options = currentPage.options; //如果要获取url中所带的参数可以查看options
            for (let key in options) {
                    let value = options[key];
                    argumentsStr += key + '=' + value + '&';
            }
            if(argumentsStr) {
                 argumentsStr = argumentsStr.substring(0, argumentsStr.length - 1);
                 urlPage = url + '?' + argumentsStr;
            } else {
                urlPage = url;
            }
            let callbackObj = {
                callbackUrl: `/${urlPage}`,
                mode: mode || 'redirectTo'
            }
             wx.setStorageSync('callbackObj', JSON.stringify(callbackObj));
             resolve();
        })
    },
    
    // 获取本地可以回调的地址
    getCallBackUrl: function() {
        return new Promise((resolve,reject) => {
            const callbackObj = wx.getStorageSync('callbackObj');
            if(callbackObj) {
                let resultObj = JSON.parse(callbackObj);
                let callbackUrl = resultObj.callbackUrl;
                let mode = resultObj.mode;
                mode == 'redirectTo' && wx.redirectTo({url: callbackUrl});
                mode == 'switchTab' && wx.switchTab({url: callbackUrl});
                mode == 'reLaunch' && wx.reLaunch({url: callbackUrl});
                mode == 'navigateTo' && wx.navigateTo({url: callbackUrl});
            } else {
                reject();
            }
        })
    },

跳转到登录页面前通过setCallbackUrl方法获取即将跳转的当前页面,当登录后调用getCallBackUrl方法,查看本地是否有需要跳转的地址,没有就在catch中执行登录后的正常逻辑,比如跳转到我的模块页面。代码如下:

复制代码
app.getCallBackUrl().catch(() => {
    // catch中执行默认的操作
    wx.redirectTo({
        url: '/pages/my/mycenter/mycenter'
    })
})
相关推荐
码云之上8 小时前
小程序 iOS 多输入框焦点乱序脱坑记
ios·微信小程序·taro
ON.LIN13 小时前
云边去水印小程序详细搭建教程(附源码)
小程序
2501_9159090616 小时前
iOS test 测试怎么做?功能、性能、兼容、稳定与安全五类测试指南
android·ios·小程序·https·uni-app·iphone·webview
deng1hao17 小时前
2026小微企业企业邮箱选择指南:低成本高性价比方案
网络·科技·小程序
Ai-_Man21 小时前
从AI公式到可编辑文档:MathType格式转换技术分析教程
人工智能·ai·小程序
show4331 天前
2026视频处理小程序技术选型指南:链接解析+OCR+ASR+AI配音多引擎对比
小程序·ocr·音视频
凡科网小帆2 天前
2026小程序商城平台哪家强,小程序商城平台选型怎么做
大数据·小程序·小程序商城平台
游戏开发爱好者82 天前
App Store 上传 IPA 自动化,.p8 密钥认证与 CI/CD 接入实战
android·运维·ci/cd·小程序·uni-app·自动化·iphone
Greg_Zhong2 天前
微信小程序 + 腾讯云人体分析:从 0 到 1 实现 AI 抠图打卡合照(细节待更新~)
人工智能·微信小程序·腾讯云·ai抠图-ai打卡拍照
游戏开发爱好者82 天前
iOS 推送怎么配置,APNs 推送证书、设备库与群发
android·ios·小程序·https·uni-app·iphone·webview