最近在做小程序,要实现这样一个功能,根据不同的场景值进入不同的页面,比如扫描二维码/小程序码进入A页面,小程序直接搜索进入B页面。
然后根据需求开始写了,发现怎么样拿的场景值都不对,都是1001,即小程序默认的场景值。因为拿到的场景值不对,开始疯狂翻官方文档,百度找资料,结果发现都是一样的写法,并没有人遇见这种问题,后来才发现不是代码写错了。是场景值在开发版(包括真机调试和预览)和体验版中拿到的场景值一直都是虚拟的或默认的1001,拿不到真实的场景值,只有到正式版才能拿到正确的场景值。好大的一个坑,记录下。获取场景值的写法如下:
// 一定要写在onShow中,因为onLaunch生命周期只第一次会进入,后面场景值一直是旧的,只有放在onShow中才能拿到实时的
App({
onLaunch: function () {
},
onShow:function(e){
console.log('场景值:', e.scene);
}
})
再记录下动态生成小程序码,小程序或二维码是可以动态生成的需要调用官方提供的接口。前端或后端都可以调用,但最好是后端调用,因为前端调用生成小程序码接口需要在微信公众平台域名处把接口域名配置上去,但是微信的域名https://api.weixin.qq.com是不允许配置的。三种生成动态小程序码或二维码的接口可进入官网查看学习。
官方地址:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/qr-code/getQRCode.html