wx.createUserInfoButton

/**
 * wx api: https://developers.weixin.qq.com/minigame/dev/document/open-api/user-info/wx.createUserInfoButton.html
 */
cc.Class({
    extends: cc.Component,

    properties: {
        wxSubContextView: cc.Node,
        tips: cc.Label,

        avatar: cc.Sprite,
        nickName: cc.Label,

        readme: cc.Label,

        background: cc.Node
    },

    start () {
        this.loadReadme();
        this.initAction();
        this.initUserInfoButton();
    },

    initAction () {
        this._isShow = false;
        this.wxSubContextView.y = 1000;
        this._showAction = cc.moveTo(0.5, this.wxSubContextView.x, 110);
        this._hideAction = cc.moveTo(0.5, this.wxSubContextView.x, 1000);

        this.background.on('touchstart', this.onClick, this);
    },

    initUserInfoButton () {
        if (typeof wx === 'undefined') {
            return;
        }

        let systemInfo = wx.getSystemInfoSync();
        let width = systemInfo.windowWidth;
        let height = systemInfo.windowHeight;
        let button = wx.createUserInfoButton({
            type: 'text',
            text: '',
            style: {
                left: 0,
                top: 0,
                width: width,
                height: height,
                lineHeight: 40,
                backgroundColor: '#00000000',
                color: '#00000000',
                textAlign: 'center',
                fontSize: 10,
                borderRadius: 4
            }
        });

        button.onTap((res) => {
            let userInfo = res.userInfo;
            if (!userInfo) {
                this.tips.string = res.errMsg;
                return;
            }

            this.nickName.string = userInfo.nickName;

            cc.loader.load({url: userInfo.avatarUrl, type: 'png'}, (err, texture) => {
                if (err) {
                    console.error(err);
                    return;
                }
                this.avatar.spriteFrame = new cc.SpriteFrame(texture);
            });

            wx.getOpenDataContext().postMessage({
                message: "User info get success."
            });

            this.wxSubContextView.runAction(this._showAction);
            this._isShow = true;

            button.hide();
            button.destroy();

        });
    },

    onClick () {
        this._isShow = !this._isShow;
        if (this._isShow) {
            this.wxSubContextView.runAction(this._showAction);
        }
        else {
            this.wxSubContextView.runAction(this._hideAction);
        }
    },


    onShowReadme () {
        this.readme.node.parent.active = true;
    },

    loadReadme () {
        cc.loader.loadRes('readme', cc.TextAsset, (err, res) => {
            this.readme.string = '\n' + res.text;
        });
        this.readme.node.on('touchstart' , () => {
            this.readme.node.parent.active = false;
        }, this);
    },
});

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值