欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 【小程序】小tips:微信小程序登录后返回登录前的页面继续操作(保留参数)

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

2024/10/25 22:27:04 来源:https://blog.csdn.net/mengran_code/article/details/142664895  浏览:    关键词:【小程序】小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; //当前页面urllet argumentsStr = '';let options = currentPage.options; //如果要获取url中所带的参数可以查看optionsfor (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'})
})

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com