Cocos Creator 微信登录授权按钮适配

步骤

1.适配不同机型来创建微信授权按钮(可自定义 具体看微信API文档)
2.通过getSetting检查是否有授权过
3.有授权则会有scope.userInfo字段,可直接通过getUserInfo获取用户信息,否则获取信息失败,注意:openid等隐私数据需要解密获得,或者通过外部自主服务器的接口获得,因为微信小游戏不允许访问带api.weixin.com域名的接口
4.通过createUserInfoButton创建一个授权按钮,点击按钮会弹窗授权
5.onTap注入点击事件

setAuthBtn(btnNode:cc.Node){
        let btnSize = cc.size(btnNode.width+10,btnNode.height+10);
		let frameSize = cc.view.getFrameSize();
		let winSize = cc.director.getWinSize();
		// console.log("winSize: ",winSize);
		// console.log("frameSize: ",frameSize);
		//适配不同机型来创建微信授权按钮
		this.left = (winSize.width*0.5+btnNode.x-btnSize.width*0.5)/winSize.width*frameSize.width;
		this.top = (winSize.height*0.5-btnNode.y-btnSize.height*0.5)/winSize.height*frameSize.height;
		this.weight = btnSize.width/winSize.width*frameSize.width;
		this.height = btnSize.height/winSize.height*frameSize.height;
		// console.log("button pos: ",cc.v2(left,top));
		// console.log("button size: ",cc.size(width,height));
		let self=this;
        self._wx.getSetting({
            success (res){
                if (res.authSetting['scope.userInfo']){
                    console.log(`微信已授权`)
                    self.getUserInfo(success,fail);
                }
                else{ 
                     //未授权
                   console.log(`弹窗授权:w`+self.weight+" h:"+self.height+" l:"+self.left+" t:"+self.top)
                    //弹窗授权
                    self.authBtn=self._wx.createUserInfoButton({
                        type: 'text',
                        text: '',
                        style: {
                          left: self.left,
                          top: self.top,
                          width: self.weight,
                          height: self.height,
                          backgroundColor: '#ff0000',
                          color: '#ffffff',
                        }
                      });
                      //点击授权
                      self.authBtn.onTap(res => {

                        if(res.errMsg === 'getUserInfo:ok'){
                  
                            //授权成功
                            console.log(`获取用户信息成功`);
                            var userInfo = res.userInfo
                            var nickName = userInfo.nickName
                            var avatarUrl = userInfo.avatarUrl
                            var gender = userInfo.gender //性别 0:未知、1:男、2:女
                            var province = userInfo.province
                            var city = userInfo.city
                            var country = userInfo.country
                            console.log("nickName:"+nickName+" avatarUrl:"+avatarUrl+
                            " gender:"+gender+" province:"+province+" city:"+city+" country:"+country+" openid:"+userInfo.openId+" unionId:"+userInfo.unionId);
                            userInfo.openId=self.openId;
                            self.authBtn.destroy();
                            self.authBtn=null;
                         }    
                        /* else{
                            self.authBtn.destroy();
                            fail&&fail();
                         }    */      
                   });
                }
            }
        });
    }
Cocos Creator是一款流行的跨平台游戏开发引擎,可以支持在多个平台上进行游戏开发,其中包括微信小程序平台。下面是关于Cocos Creator微信登录的详细说明。 1. 引入微信登录功能:在Cocos Creator中,可以通过引入微信官方提供的API实现微信登录功能。首先,需要在项目中添加微信登录的依赖库,然后在对应的脚本文件中引入相关的微信登录API。 2. 获取微信登录凭证:在用户点击微信登录按钮后,可以调用微信登录API来获取用户的微信登录凭证,凭证的获取需要通过微信授权,用户需要同意授权。凭证成功获取后,可以获取到用户的唯一标识openid和会话密钥session_key。 3. 与游戏服务器进行验证:获取微信登录凭证后,可以将凭证传递给游戏服务器进行验证。游戏服务器可以通过调用微信提供的接口验证凭证的有效性,并获取用户的微信账号信息。验证成功后,可以将用户的游戏信息与微信账号进行绑定,并生成游戏内的唯一标识token。 4. 使用微信账号登录游戏:验证成功后,可以将生成的token返回给客户端,并保存在本地。下次用户再次打开游戏时,可以直接读取本地保存的token,并传递给游戏服务器进行验证。验证通过后,用户可以直接使用微信账号登录游戏。 通过以上步骤,我们可以在Cocos Creator中实现微信登录功能。当然,在实际开发中,还需要考虑到错误处理、登录状态的管理以及用户信息的更新等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值