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

server/2024/10/5 18:19:41/

在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'})
})

http://www.ppmy.cn/server/127593.html

相关文章

redis-数据类型

十大数据类型 学习 redis 操作手册 英文 Commands 中文 Redis命令中心(Redis commands) – Redis中国用户组(CRUG) 学习方法 举出一个数据结构的应用场景(理解数据结构特点),并操作&…

从零开始:SpringBoot实现古典舞在线交流平台

第二章 相关技术介绍 2.1Java技术 Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译&#xf…

如何使用 Gradio 创建聊天机器人

如何使用 Gradio 创建聊天机器人 文章目录 如何使用 Gradio 创建聊天机器人一、介绍二、简单示例与实战1、定义聊天功能2、示例:回答“是”或“否”的聊天机器人3、另一个使用用户输入和历史记录的示例4、流式聊天机器人 三、定制化聊天机器人1、为您的机器人添加更…

155. 最小栈

思路 按栈的特点:顶部即列表尾部 class MinStack(object):def __init__(self):self.stack[]def push(self, val):""":type val: int:rtype: None"""self.stack.append(val)def pop(self):""":rtype: None"&quo…

车辆种类分类识别数据集,可以识别7种汽车类型,已经按照7:2:1比 例划分数据集,训练集1488张、验证集507张,测试集31张, 共计2026张。

车 车辆种类分类识别数据集,可以识别7种汽车类型,已经按照7:2:1比 例划分数据集,训练集1488张、验证集507张,测试集31张, 共计2026张。 数据集分为一类客车(tinycar) ,类客车(midcar) ,三类 客车(bigcar) ,…

项目-坦克大战学习笔记-地图对象绘制思路

在窗体绘制地图对象时我们需要考虑到绘制对象的分类,首先统一称为Object类, 细分为不可移动类(墙体),可移动类(玩家,人机,子弹),可移动类又分为三类 在Obje…

数据科学:Data+AI驾驭数据的智慧之旅

数据科学:DataAI驾驭数据的智慧之旅 前言一、数据存储计算二、数据治理三、结构化数据分析四、语音分析五、视觉分析六、文本分析七、知识图谱 前言 今天想和大家深入聊聊数据科学这个充满魅力又极具挑战的领域。在当今数字化时代,数据如同潮水般涌来&a…

MATLAB中数据导入与导出的全面指南

在MATLAB中,数据的导入与导出是数据处理工作流中的两个基本步骤。导入是将外部数据加载到MATLAB工作区的过程,而导出则是将工作区中的数据保存到外部文件中。这两个步骤对于数据分析、可视化和结果共享至关重要。本文将详细介绍如何在MATLAB中进行数据的…