Cocos Creator 微信小游戏 记录自动登录的一个小问题

在cocos中引入微信自动登录,当用户没有授权时会拉起获取授权的按钮,点击后闪几下黑屏
代码:

cc.Class({
    extends: cc.Component,

    properties: {
    },

    // LIFE-CYCLE CALLBACKS

    start () {
    	this.autoLogin();
    },
    async autoLogin(){
        const setting = await api_wx.getSetting();
        let userInfo = null;
        //判断用户自动登录配置
        if (setting.authSetting["scope.userInfo"]) {
            //通过直接获取用户信息,登录
            userInfo = await api_wx.getUserInfo();
        } else {
            //如果未授权则调起授权按钮,获取授权,如果不给授权则退出游戏
            console.log('未授权');
            userInfo =await this.getAuth();
        }
    },
    。。。。

发现当autoLogin()方法改为在onLoad ()中调用就不会出现黑屏,
官方文档:

onLoad
组件脚本的初始化阶段,我们提供了 onLoad 回调函数。onLoad 回调会在节点首次激活时触发,比如所在的场景被载入,或者所在节点被激活的情况下。在 onLoad 阶段,保证了你可以获取到场景中的其他节点,以及节点关联的资源数据。onLoad 总是会在任何 start 方法调用前执行,这能用于安排脚本的初始化顺序。通常我们会在 onLoad 阶段去做一些初始化相关的操作

start
start 回调函数会在组件第一次激活前,也就是第一次执行 update 之前触发。start 通常用于初始化一些需要经常修改的数据,这些数据可能在 update 时会发生改变。

在第一次update之前触发,可能是因为awai等待用户授权的时间过长,导致update方法不能正常刷新?
顺带说一句,代码里能用async和await是因为用的是typescript(新建typescript,但是写javascript代码)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值