Cocos Creator微信小游戏之如何确认分享成功

众所周知,目前微信的分享没有回调(2020.7.3),也就是说,只要被分享到小游戏链接的人不点击链接进入游戏,服务器就不知道分享游戏的玩家到底分享了没有,那么这个游戏的分享奖励怎么快速的给出呢?我同事给出了个妥协的解决方式,游戏发起分享会退到后台,那么当游戏重新进入前台时,只要有2s多的时间差,就算玩家分享成功了。(我在写这个文档时,也看到有人分享同样的处理方式,赞)
微信小游戏的分享接口截图:


image.png

下面直接上代码:

/**
* 此方法每次点击分享就执行一次
* @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);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。