[Egret] 微信小游戏获取用户信息

2019-12-18  本文已影响0人  卓灬不凡
getUserInfo() {
        return new Promise((resolve, reject) => {
            let sysInfo = wx.getSystemInfoSync();
            let sdkVersion = sysInfo.SDKVersion;
            sdkVersion = sdkVersion.replace(/\./g, "");
            sdkVersion = sdkVersion.substr(0, 3);
            let sdkVersionNum = parseInt(sdkVersion);
            // 判断是否已经授权 - 并且兼容 2.0.1 以前版本获取
            wx.getSetting({
                success(res) {
                    if (sdkVersionNum >= 201 && !res.authSetting['scope.userInfo']) {
                        // 创建获取用户信息按钮
                        var button = wx.createUserInfoButton({
                            type: 'image',
                            text: '',
                            image: "http://www.oneh5.com/iptv/h5/egret/billiard/resource/game/jiqiu.png",
                            style: {
                                left: 0,
                                top: 0,
                                width: 100,
                                height: 100
                            }
                        });
                        button.onTap((res) => {
                            if (res.userInfo) {
                                console.log("用户授权:", res);
                                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;
                                button.destroy();
                                resolve(userInfo);
                            } else {
                                wx.showModal({
                                    title: '友情提醒',
                                    content: '请允许微信获得授权!',
                                    showCancel: false,
                                    cancelColor: '#000000',
                                    confirmText: '确定',
                                    confirmColor: '#3cc51f'
                                });
                            }
                        });
                    } else {
                        // 已授权 - 直接获取
                        wx.getUserInfo({
                            withCredentials: true,
                            success: res => {
                                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;
                                resolve(userInfo);
                            },
                            fail: res => {
                                wx.showModal({
                                    title: '友情提醒',
                                    content: '请允许微信获得授权!',
                                    showCancel: false,
                                    cancelColor: '#000000',
                                    confirmText: '确定',
                                    confirmColor: '#3cc51f'
                                });
                            }
                        });
                    }
                }
            });
        })
    }
上一篇 下一篇

猜你喜欢

热点阅读