Cocos Creator微信获得用户授权的wx.createUserInfoButton的用法和自己的改进方法

首先是官方的例子
wx.createUserInfoButton

可以看到官方给出的例子如下

const button = wx.createUserInfoButton({
  type: 'text',
  text: '获取用户信息',
  style: {
    left: 10,
    top: 76,
    width: 200,
    height: 40,
    lineHeight: 40,
    backgroundColor: '#ff0000',
    color: '#ffffff',
    textAlign: 'center',
    fontSize: 16,
    borderRadius: 4
  }
})
button.onTap((res) => {
  console.log(res)
})

实际上,虽然给出了这个按钮的属性,但是对于一些小白来说还是不懂得如何使用,比如说这个按钮的位置的放置,所以我将上述代码进行了一些调整

      createLoginButton() {
        if (typeof (wx) != 'undefined') {
            //获取系统信息的宽度
            let sysInfo = wx.getSystemInfoSync();
            let screenW = sysInfo.screenWidth;
            let screenH = sysInfo.screenHeight;
            let rate = screenW / 750;//设计分辨率为750*1334
            let self = this;
            //根据你图片的大小调整对应的长宽高,并且在不同的分辨率下大小也会对应变化,我的图片是418*160
            let width = 418 * rate;
            let height = 160 * rate;
            const button = wx.createUserInfoButton({
                type: 'image',
                image: "images/ksyx.png",//图片的位置是在打包构建后的bulid里的根目录开始而不是项目目录
                style: {
                //设置位置
                    left: screenW / 2 - width / 2,
                    top: screenH/2 + 100,
                    width: width,
                    height: height
                }
            })
            button.onTap((res) => {
                console.log('点击授权按钮', res)
                if (res && res.userInfo) {
                    button.destroy();
                    self.Loadmenu();//载入下一个场景
                }
            })
        }
    }

在上述代码中,它的意义在于创建一个按钮,如果授权成功就会加载到下一个页面并且下一次便不会触发,不授权的话便会在当前页面停留直到用户同意授权,这样你就可以从res中获得用户的头像id等信息并且在你需要的地方显示出来

如果需要一个覆盖全屏的透明按钮的话,可以参考一下群友提供的代码

//创建一个透明按钮在cc.Button的node节点上
	createAuthorizeBtn(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);
		//适配不同机型来创建微信授权按钮
		let left = (winSize.width*0.5+btnNode.x-btnSize.width*0.5)/winSize.width*frameSize.width;
		let top = (winSize.height*0.5-btnNode.y-btnSize.height*0.5)/winSize.height*frameSize.height;
		let width = btnSize.width/winSize.width*frameSize.width;
		let 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.btnAuthorize = wx.createUserInfoButton({
			type: 'text',
			text: '',
			style: {
				left: left,
				top: top,
				width: width,
				height: height,
				lineHeight: 0,
				backgroundColor: '',
				color: '#ffffff',
				textAlign: 'center',
				fontSize: 16,
				borderRadius: 4
			}
		})

		self.btnAuthorize.onTap((uinfo) => {
			console.log("onTap uinfo: ",uinfo);
			if (uinfo.userInfo) {
				console.log("wxLogin auth success");
				wx.showToast({title:"授权成功"});
			}else {
				console.log("wxLogin auth fail");
				wx.showToast({title:"授权失败"});
			}
		});
	}
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值