眾所周知,目前微信的分享沒有回調(diào)(2020.7.3),也就是說,只要被分享到小游戲鏈接的人不點(diǎn)擊鏈接進(jìn)入游戲,服務(wù)器就不知道分享游戲的玩家到底分享了沒有,那么這個(gè)游戲的分享獎(jiǎng)勵(lì)怎么快速的給出呢?我同事給出了個(gè)妥協(xié)的解決方式,游戲發(fā)起分享會(huì)退到后臺(tái),那么當(dāng)游戲重新進(jìn)入前臺(tái)時(shí),只要有2s多的時(shí)間差,就算玩家分享成功了。(我在寫這個(gè)文檔時(shí),也看到有人分享同樣的處理方式,贊)
微信小游戲的分享接口截圖:

image.png
下面直接上代碼:
/**
* 此方法每次點(diǎn)擊分享就執(zhí)行一次
* @param _callback處理分享的回調(diào)
*/
public static onShowGame (_callback: any): void {
console.log("---游戲回到前臺(tái)---------------");
// 記錄點(diǎn)擊分享的時(shí)間(秒級(jí))
this.shareStartTimeSecond = Tools.GetCurrentTimeStampSecond();
let func: Function = (_res: any)=>{
let isShareSuccess: boolean = false;
if (this.shareStartTimeSecond <= 0) {
// 不處理
}else {
// 判斷轉(zhuǎn)發(fā)成功與否,按時(shí)間處理
let interval: number = Tools.GetCurrentTimeStampSecond() - this.shareStartTimeSecond;
this.shareStartTimeSecond = -1;
// 我這里間隔設(shè)置為2.5s
if (interval >= 2.5) {
isShareSuccess = true;
}
}
_callback(isShareSuccess);
// 取消監(jiān)聽小游戲回到前臺(tái)的事件
window['wx'].offShow(func);
};
// 監(jiān)聽小游戲回到前臺(tái)的事件
window['wx'].onShow(func);
}