后台调getWXACodeUnlimit前端怎么获取值,直接用wx.scanCode怎么取值,怎么在模拟器模拟getWXACodeUnlimit传值

由于之前做的小程序带参数进入都是用芝麻小程序做的二维码,直接传参即可,现在项目老大说要后台调用getWXACodeUnlimit生成二维码前端去取值。然后自己这三个问题搞了好久(当然也有百度),有些压根答不到点上,有些只有前半部分,所以我自己在这里也写一个吧,把整个需要扫码的流程都写完。

不同之处:有sence=这个参数。取值略微不同。

1.先说后台调getWXACodeUnlimit生成二维码,用户从微信进去点击扫一扫

onLoad: function (options) { 
        if (this.getUrlParam("cabinet_id", decodeURIComponent(options.scene))) {//扫码进来带参数
            this.setData({ cabinet_id: this.getUrlParam("cabinet_id", decodeURIComponent(options.scene)) });//将id赋值给data里面的变量
        }  
    },
// 获取扫码后的字符串,因为考虑有多个参数,所以写了一个公共函数
    getUrlParam(name, str) {
        let regs = new RegExp("scene=", "g"); //场景值
        str = str.replace(regs, ""); 
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var array = str.match(reg);
        if (array != null)
            return array[2];
    },

关键点是得到的参数要先decodeURIComponent

2.进入小程序后点击扫一扫,扫getWXACodeUnlimit生成的二维码

wx.scanCode({
                success:(res)=> {
                    let str = decodeURIComponent(res.path ? res.path.substr(res.path.indexOf("?") + 1, res.path.length - 1) : "");
                    if (this.getUrlParam("cabinet_id", str)) {
                        this.setData({ "cabinet_id": this.getUrlParam("cabinet_id", str) });
                    }else{
                        wx.showModal({
                            title: '提示',
                            content: '没有找到相关设备,请找相关人员确认是否为有效二维码',
                            confirmText: "确定",
                            showCancel: false,
                            success: (res) => {if (res.confirm) {}}
                        })
                    }  
                }
            })

关键点是扫码获取的参数并不是result,参数在path里面,小程序文档估计是没有更新吧,希望你们别掉这坑。path可以用decodeURIComponent转也可以不转,因为手机端自动解码了,但是小程序开发工具还是需要的

3.小程序编辑器模拟getWXACodeUnlimit生成的二维码传参,根据小程序说明文档,说需要encodeURLComponent一下,然后我就傻乎乎的scene=encodeURLComponent(cabinet_id=10001),大家别犯我的错啊,是这样scene=cabinet_id%3D10001

忘了说,要模拟需要点击编译,选择自定义编译条件。如下图:

好了,笔记就做到这,nice!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值