小程序二维码跳转参数解析

时间:2024-03-10 19:40:17

服务端调用微信的接口动态生成小程序二维码,文档地址:小程序二维码生成文档

微信扫描小程序二维码后,在页面的onLoad函数的参数options内可以拿到跳转参数scene值,但是需要对scene进行decodeURIComponent操作。

以下是具体的代码:

Page({
  onLoad (options) {
    // scene需要使用decodeURIComponent才能获取到生成二维码时传入的scene
    const scene = decodeURIComponent(options.scene);
  }
});

参数情况:

跳转参数可分为单参数和多参数的情况。

单参数:

  页面地址:pages/home/home?123456

  scene值:123456

多参数:

  页面地址:pages/home/home?courseId=1&lessonId=1

  scene值:courseId=1&lessonId=1

所以多参数的情况下,需要对scene值进行解析操作:

function getQueryValue(query, queryName) {
  const reg = new RegExp("(^|&)" + queryName + "=([^&]*)(&|$)", "i");
  const r = query.match(reg);
  if (r !== null){
    return r[2];
  } else {
    return null;
  }
}

Page({
  onLoad (options) {
    // scene需要使用decodeURIComponent才能获取到生成二维码时传入的scene
    const decodeScene = decodeURIComponent(options.scene);
    const courseId = getQueryValue(decodeScene, \'courseId\');
    const lessonId = getQueryValue(decodeScene, \'lessonId);
  }
});

微信开发者工具调试:

下载服务端生成的小程序二维码到本地,然后通过微信开发者工具的编译模式(通过二维码编译)读取本地的二维码进行调试。