众所周知,目前微信的分享没有回调(2020.7.3),也就是说,只要被分享到小游戏链接的人不点击链接进入游戏,服务器就不知道分享游戏的玩家到底分享了没有,那么这个游戏的分享奖励怎么快速的给出呢?我同事给出了个妥协的解决方式,游戏发起分享会退到后台,那么当游戏重新进入前台时,只要有2s多的时间差,就算玩家分享成功了。(我在写这个文档时,也看到有人分享同样的处理方式,赞)
微信小游戏的分享接口截图:
下面直接上代码:
/**
* 此方法每次点击分享就执行一次
* @param _callback处理分享的回调
*/
public static onShowGame (_callback: any): void {
console.log("---游戏回到前台---------------");
// 记录点击分享的时间(秒级)
this.shareStartTimeSecond = Tools.GetCurrentTimeStampSecond();
let func: Function = (_res: any)=>{
let isShareSuccess: boolean = false;
if (this.shareStartTimeSecond <= 0) {
// 不处理
}else {
// 判断转发成功与否,按时间处理
let interval: number = Tools.GetCurrentTimeStampSecond() - this.shareStartTimeSecond;
this.shareStartTimeSecond = -1;
// 我这里间隔设置为2.5s
if (interval >= 2.5) {
isShareSuccess = true;
}
}
_callback(isShareSuccess);
// 取消监听小游戏回到前台的事件
window['wx'].offShow(func);
};
// 监听小游戏回到前台的事件
window['wx'].onShow(func);
}