评论

解析二维码失败,非小程序码,手机可以扫,用开发者工具的二维码编译就不行?

扫描普通二维码打开小程序获取参数



先描述应用场景:

一种有效得推广手段,就是配置跳转小程序链接二维码,从而引流到微信小程序.

操作流程如下图:



然后用 这个测试地址生成一个二维码,举个栗子比如下面这个生成一个二维码,手机切换到体验版,扫码进入首页就可以了

https://api.XXXXX.com/share?uid=324


这里补充一个知识点: 这个链接地址 小程序里面得到的是一个q的参数标识.

参考这篇文章: https://www.jianshu.com/p/6c62a161e609


贴一下核心的业务代码:

 onLoad: function (options) {
    console.log("index 生命周期 onload" + JSON.stringify(options))
    //在此函数中获取扫描普通链接二维码参数
    if(options.q){
      let q = decodeURIComponent(options.q);
      console.log("index 生命周期 onload url=" + q)
      console.log("index 生命周期 onload 参数 is_water=" + utils.getQueryString(q, 'is_water'))
      var is_water = utils.getQueryString(q, 'is_water');
      console.log(is_water);
      console.log("index 生命周期 onload 参数 access_token=" + utils.getQueryString(q, 'access_token'))
      var access_token = utils.getQueryString(q, 'access_token');
      console.log(access_token);
    }
 }


utils.js截取方法如下:

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

module.exports = {
  getQueryString: getQueryString
}


通过上面方法即可获取普通二维码所携带的参数进行判断了

当然还有一种极端操作,如果我想在onLaunch生命周期里面获取,应该怎么操作呢?


当然还有一种极端操作,如果我想在onLaunch生命周期里面获取,应该怎么操作呢?

获取的参数会发生变动 :options?.query?.q


onLaunch: function(options) {
    if(options?.query?.q){
      let q = decodeURIComponent(options.query.q);
      let uid = getQueryString(q, 'uid');
      if(uid){
        this.inviteUserId = uid;
        uni.setStorageSync('inviteUserId',uid)
      }
      console.log('uid======onLaunch=======',uid)
    }






























最后一次编辑于  2022-09-28  
点赞 1
收藏
评论

1 个评论

  • 铁牛 👁_👁
    铁牛 👁_👁
    2023-10-11

    这个二维码规则要“发布”一下,不发布微信开发者工具还是不识别。

    2023-10-11
    赞同
    回复 2
    • 你是人间四月天
      你是人间四月天
      2023-10-22
      肯定要发布一下的 ,发布了还要等一哈才生效。
      2023-10-22
      回复
    • 铁牛 👁_👁
      铁牛 👁_👁
      2023-11-13回复你是人间四月天
      是的这个还是要注意一下,发布过的规则开发的时候才能用二维码编译,如果直接扫码就会跳正式版小程序,有心智负担。
      2023-11-13
      回复
登录 后发表内容