微信小程序扫码进入小程序参数问题
互联网 2022/5/12 20:29:05
需求:扫描二维码进入小程序的详情页面,目录页面,页面请求都需要带上参数及需要验证用户授权。
既然是扫码进入的,那么我第一反应肯定是在请求拦截里做操作了,不然如何判断他是什么怎么进来的。一进入页面,肯定会有请求,我先调用一下wx.getLaunchOptionsSync()获取当前的场景值,看看他是怎么进来的。如果是扫码进来的, 我要记录起当前的url以及query参数。
// 获取场景URL let jumpUrl = '' // 获取场景ID const option = wx.getLaunchOptionsSync() // 1011 二维码 1012 长按图片识别 1013 扫描相册二维码 if(option.scene === 1011 || option.scene === 1012 || option.scene === 1013 || option.scene === 1047 || option.scene === 1048 || option.scene === 1049) { if(JSON.stringify(option.query) !== '{}') { jumpUrl = encodeURIComponent(`/${option.path}?${decodeURIComponent(option.query.scene)}`) } }
这里有两个注意的点:
1、option.query.scene 获取的参数需要用decodeURIComponent解码,解码出来的值是跟你自己写的参数会不一样的。
比如:一般你页面传值的url是: '/pages/detail/detail?id=3', 解码出来后的参数是'/pages/detail/detail?id=7627a3dc69a88c7t'这种格式,解码出这个之后,就拿这个去试试能否请求成功。
2、因为页面需要授权,你要把记录的链接带到登录页 '/pages/detail/detail?id=7627a3dc69a88c7t'去授权。如果直接带过去,会出现参数丢失问题,所以需要encodeURIComponent()加密一下
然后就可以带到登录页去了:
wx.reLaunch({ url: '/pages/login/login?redirect=' + jumpUrl, })
接下来就是获取参数的问题。
登录页获取参数,需要解码
onLoad: function (options) { // 获取url if(options.redirect) { const url = decodeURIComponent(options.redirect) console.log('url', url) // 授权完成后跳转回去 this.setData({ redirect: url }) } }
详情页的参数
因为扫码进来的链接是这样的
'/pages/detail/detail?scene=id=7627a3dc69a88c7t',所以在解码之后,还需要对scene做操作,有scene时,说明是扫码进来的,没有时,说明是页面跳进来的
onLoad(options) { let scene = decodeURIComponent(options.scene) let id = scene !== 'undefined' ? scene.split('=')[1] : options.id },
完。

关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[微信小程序扫码进入小程序参数问题]http://www.zyiz.net/tech/detail-320436.html
- 2022-05-200-CH32V307+ESP8266基本控制篇(自建物联网平台)-整体运行测试-微信小程序使用APUConfig配网绑定ESP8266,并通过MQTT实现远程通信控制
- 2022-05-20一个小程序开发的舒尔特训练
- 2022-05-18小程序嵌套H5页面
- 2022-05-18记一次小程序逆向
- 2022-05-18微信小程序添加分享功能(分享给朋友) uniapp版
- 2022-05-17微信小程序授权及检测访问当前页面需要去登录的操作
- 2022-05-17记录小程序字符串模板渲染WxParse
- 2022-05-17FinClip小程序+Rust(三):一个加密钱包
- 2022-05-17FinClip小程序+Rust(二):环境搭建
- 2022-05-15三、条件和列表渲染(微信小程序开发【有基础】-组件篇)