微信小程序码 getUnlimited 接口获取参数小程序码笔记

更新时间:2020-07-20 分类:小程序 浏览量:2952

丸子小程序社区版和资讯版都实现了通过小程序扫描二维码登录网站后台,对于部分网站还是有一定的帮助,比如资源类网站,要求登录后才可以下载,又或者本文以积分支付方式,才可以获得完整内容。通过小程序端实现授权,扫描二维码登录网站,实现从手机端的体验回归到PC端的体验。但是,通过小程序扫描二维码登录网站也有一点不便利性,必须先打开小程序进行登录授权,然后才能使用扫描二维码进行登录网站。于是,花时间研究了一下微信小程序码 getUnlimited 接口,利用微信扫描参数小程序码进行登录网站。该接口适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制

在开发微信小程序码 getUnlimited 接口获取参数小程序码应用过程中,遇到了一些问题,在此记录一下笔记。

1、小程序码生成路径和参数

微信小程序码 getUnlimited 接口生成的小程序码路径不可以带有参数,且传递参数也不一样。createQRCode 接口传递的小程序页面路径参数为 path ,支持页面路径参数,即 pages/detail/detail?id=100 ,get 接口同样如此。但是 getUnlimited 接口传递的小程序页面路径参数为 page , 页面路径参数为 scene ,即 page: pages/detail/detailscene: id=100

2、通过小程序码访问小程序的参数解析

微信小程序码 getUnlimited 接口生成的小程序码,扫码访问小程序后,即时打开 page 路径,需要在 page 路径页面对 scene 参数进行解析获取。


Page({
  onLoad (options) {
    const scene = decodeURIComponent(options.scene)
  }
})

通过获取到的 scene 参数进行传递给页面。比如:scene: id=100


Page({
  onLoad (options) {
    const scene = decodeURIComponent(options.scene)
    const params = scene.split("&")
    this.setData({
       id: params[1]
    })
  }
})

这样处理的结果与 path: pages/detail/detail?id=100 方式相同。

但是,有个需要注意的点是,这是具体的小程序页面获取 scene 参数。假如,想在 app.js 获取 scene 参数,onLaunch 或 onShow 获取的 scene 都不是小程序码的参数,而是内置场景参数。app.js 要获取小程序码参数方式如下:


Page({
  onLaunch (options) {
    const scene = decodeURIComponent(options.query.scene)
  }
})

通过微信小程序码 getUnlimited 接口获取的小程序码用于扫码登录网站,则无需打开小程序,通过微信扫描即可。(注意:同样需要该微信授权登录过小程序)

网站登录

微信小程序码

正如微信小程序码 getUnlimited 接口开发文档所说,通过微信小程序码 getUnlimited 接口获取的小程序码,适用于需要的码数量极多的业务场景。