Android下onShow不会重置referrerInfo, iOS会自动重置。
业务场景:
比如 wx.navigateBackMiniProgram 回传数据的时候,目标小程序在onShow接收数据,处理相关业务,比如跳转页面。
小程序每触发一次onShow就会多处理一次相关逻辑,尴尬,在安卓上会这样。iOS上不会,因为官方给自动重置了。
屎山:在回传数据的时候,传递 unique 唯一标识
if (!!options?.referrerInfo?.appId && !!options?.referrerInfo?.extraData?.msgType) {
const unique = options?.referrerInfo?.extraData?.unique;
// android下onShow不会重置referrerInfo属性
if (this.lastReferrerInfoUnique != unique) {
this.lastReferrerInfoUnique = unique
this.handleEmbeddedBack(options?.referrerInfo || {})
} else {
console.log('已经处理过,不再二次处理')
}
}