小程序扫描普通二维码获取参数并跳转

1,056 阅读1分钟

官方文档地址:配置教程

1、在微信公众平台配置一下

二维码规则里面的地址最多是只能2个子域名,不写子目录的也可以,需要下载校验文件进行校验功能页面就是要跳转的页面路径,比如:pages/index/index

在这里插入图片描述

2、生成二维码

我们去草料官网去生成一个二维码

注意:这里的参数千万不能有中文,否则识别不了,我就是不小心写了参数,结果半天跳不过去…,坑啊

在这里插入图片描述

3、获取参数

按照官方说的要用微信的扫一扫并在onLoad中进行参数获取

在这里插入图片描述

·

可能有些人不想用微信的扫一扫,想在小程序中弄一个按钮,点击调起摄像头或者相册进行扫码,并获取二维码的参数,这样子也是可以的,上代码

因为小程序里面是不支持window.location.href.search,所以要用别的方法

	//获取url参数,url为地址;queryName为想要获取的参数名
    getQueryString(url,queryName) {
      var reg = new RegExp('(^|&|/?)' + queryName + '=([^&|/?]*)(&|/?|$)', 'i')
      var r = url.substr(1).match(reg)
      if (r !== null ) {
        console.log(r[2])
        this.setData({
          connectId: r[2]
        })
        return r[2]
      }
      return null;
    },
	//点击扫描时触发
    onClickScan(e) {
      let that = this
      if (!app.globalData.userInfo) {
        wx.navigateTo({
          url: '../login/login',
        })
        return;
      }
      wx.scanCode({
        async success(res) {
          console.log(res)
          that.getQueryString(res.result,'connectId')
          console.log(that.data.connectId)
        },
        fail(res) {
          console.log(res)
          wx.showToast({
            title: '扫码失败'
          })
          wx.navigateTo({
            url: '../home/home',
          })
        }
      })
    }

去草料生成一个带参数的url地址,然后扫码打印一下看看
result就是二维码中的地址参数,比如说我们想要获取connectID这个参数,只需要调用一下getQueryString这个方法,传一个地址和connectID这个参数名就可以了

在这里插入图片描述

wx.navigateTo({
          url: `../xxxx/xxxx?data=${this.data.connectId}`,
})

在这里插入图片描述