扫普通二维码跳转小程序页面传动态参数

本文档介绍了如何在微信小程序中设置和获取二维码动态参数。通过设置二维码规则并利用URL的query参数,实现了自定义参数的传递。在小程序内部,可以使用util.js的getQueryString方法来解析获取到的参数,从而实现对扫描普通链接二维码时携带信息的处理。此方法适用于需要在小程序中灵活处理二维码参数的场景。
摘要由CSDN通过智能技术生成

微信官方文档
扫普通链接二维码打开小程序

一开始看完官方文档后,以为是设置了规则是https://xxx.xxx.xxx/yyy?code=123之后,我可以自己传不一样的动态参数进去,比如https://xxx.xxx.xxx/yyy?code=my_secret,但是发现,只要code不是123,他就无法跳转了,真是x了dog了。。。

后来我顿悟了,我将二维码规则设置为https://xxx.xxx.xxx/yyy?action=gogogo,然后,测试链接填https://xxx.xxx.xxx/yyy?action=gogogo&code=my_secret,然后。。。二维码生成链接https://xxx.xxx.xxx/yyy?action=gogogo&code=my_secret,扫码后,oh,yeah,顺利拿到整个url,哈哈,原来我们都理解错了。

这里说明一下,action这个可以随便填,你可以用其他任何名字,只是记得自己的自定义链接的前面部分一定要和规则一模一样,比如这里的action=gogogo,至于&符号后面传什么参数就是你的自由了。

小程序代码里面获取参数:

util.js

let getQueryString = function (url,name) {
 console.log("url = "+url)
 console.log("name = " + name)
 var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i')
 var r = url.substr(1).match(reg) 
 if (r != null) {
  console.log("r = " + r)
  console.log("r[2] = " + r[2])
  return r[2]
 }
 return null;
}
module.exports = {
 getQueryString: getQueryString,
}

app.js

var utils = require('./utils/util')
 
App({
 onLaunch: function (options) {
  console.log("全局onLaunch options==" + JSON.stringify(options))
  let q = decodeURIComponent(options.query.q)
  if (q){
   console.log("全局onLaunch onload url=" + q)
   console.log("全局onLaunch onload 参数 flag=" + utils.getQueryString(q, 'flag'))
  }
 
 }
 
})

页面中获取二维码参数

Page({
 
 /**
  * 页面的初始数据
  */
 data: {
 
 },
 
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
  console.log("index 生命周期 onload"+JSON.stringify(options))
  //在此函数中获取扫描普通链接二维码参数
  let q = decodeURIComponent(options.q)
  if(q){
   console.log("index 生命周期 onload url=" + q)
   console.log("index 生命周期 onload 参数 flag=" + utils.getQueryString(q, 'flag'))
  }
 }
 
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值