1、生成二维码
  • 在小程序开发中,经常需要用到通过分享小程序二维码,进行扫码进入小程序。

  • 官方文档 生成小程序二维码接口,这个生成接口可以放置服务器使用。
    page:是扫码之后需要打开的小程序页面
    scene:是小程序通过扫码之后进入小程序页面带进来的参数,这个参数也是你在生成二维码的时候填好的识别参数
    其他的属性可以直接看文档,主要功能还是在这两个参数上。

  • 生成二维码的时候报错: invalid page hint: [khnDRb0gE-rMmlpA] rid: 5f475efd-096822b7-643b3732
    1、一种原因是线上小程序不存在当前这个配置的页面地址,所以需要等上线之后才可以测试。
    2、一种原因是在填写参数 page 的时候:pages/index/index 不要写成 /pages/index/index

  • 通过文档生成小程序二维码之后,并分享之后,如何获取到扫码进来二维码所带的参数呢,我们只需要生成二维码的时候配置的 page 页面中 onLoad 中进行判断处理即可:

onLoad: function (options) {
  if (options.scene) {
    // 必须要 decodeURIComponent 格式化一下,不然里面的符号会是 %23... 这样的格式
    let scene = decodeURIComponent(options.scene);
    // '&'是我们定义的参数链接方式
    let userID = scene.split("&")[0];
    let bookID = scene.split('&')[1];
    // 其他逻辑处理。。。。。
  }
}

2、扫码进入开发版测试二维码数据
  • 我们通过下面数据生成二维码,注意配置的页面需要存在于小程序项目里面,不存在是无法打开页面的:
{
   "page": "pages/index/index",
   "scene": "name=dzm#age=18"
}

  • 生成二维码之后,我们将二维码保存到桌面上,然后打开小程序工具:

    点击头部的编译模式,找到通过二维码编译,然后选择桌面上的二维码图片,这样就会跟手机上扫码一样,打开二维码中配置的页面,以及通过页面中 onLoad: function (options) 方法带过来之前配置的 scene 参数。

  • 解析参数看第一步中最后一步即可。

3、扫码进入开发版测试二维码数据
  • 其实还可以通过 选择编译模式中的 自定义编译条件 来进行测试

  • 模式名称: 随便起个名字,方便下次找到在重复使用

  • 启动页面: 我们之前配置二维码中需要打开的页面

  • 启动参数:我们之前配置二维码中需要打开的页面附带的参数,填写格式为:scene=yq#397#261,也可以传入格式化好的数据 scene=yq%23397%23261这里就不能出现多余的 = 号了 例如 scene=name=dzm#age=18 这中数据就不能这么传的,自己拿去格式化一下在放进来,里面的 scene 就需要我们自己指定好,打开页面的时候获取到的数据就是这样的了:{scene: "yq#397#261"}{scene: "yq%23397%23261"},然后参数通过 decodeURIComponent 格式化回来就都是 yq#397#261 了。

  • 进入场景:无特殊情况默认即可

  • 然后点击确定即可测试!

更多推荐

微信小程序 - 二维码数据解析,如何扫码进入开发版测试二维码数据