现有产品需求是进入小程序必须扫码进入(小程序码里需要携带vin参数以此判断显示内容)
在app.onShow方法里有option参数可以通过option.query.vin拿到然后存储在globalData里。
但是在页面中调起小程序支付功能后会重新执行app.onShow方法,此时app.onShow方法的option参数里是没有携带vin参数的,导致显示内容无法判断。
代码片段如下:
//app.js
onShow(option){
let op = option;
//车辆VINif (op.query.scene.vin) {//扫码进来带有vin参数则赋值
this.globalData.vin = op.query.scene.vin
}else{//没有vin则提示客户需扫码且清空vin以免下次非扫码进入的时候带有上次扫码进来时缓存的vin
this.globalData.vin = '';//
}
}
小程序中调起支付后op.query.scene中是没有任何参数的,这时候返回到页面中刷新数据没有vin参数导致内容显示不正确
onShow(option){
let op = option;
//车辆VIN
if (op.query.scene.vin) {// 扫码会进入这里(支付成功后返回不会进入这里)
//扫码进来带有vin参数则赋值
this.globalData.vin = op.query.scene.vin;
} else if (!this.globalData.vin) {// 支付成功后返回也不会进入这里
// 如果是非扫码进小程序,则会进入这里
//进入这里,则会提示客户需扫码
} else {//支付成功后返回,this.globalData.vin还是刚才扫码的vin,所以会进入这里
//支付完成后续显示问题解决啦
}
}