微信小程序获取用户信息的问题

cpms开源
  • 938

小程序用的时unipp+uView框架开发,本地开发测试获取用户信息的代码
html

<button size="mini" v-if="!isLogin" class="wx_login_btn" open-type="getUserInfo" lang="zh_CN" @getuserinfo="appLoginWx" bindgetuserinfo="bindgetuserinfo">登录</button>

js

appLoginWx(){
                let _that = this
                uni.login({
                    provider: 'weixin',
                    success: function (codeInfo) {
                      console.log(codeInfo);
                      // 获取用户信息
                      uni.getUserInfo({
                        provider: 'weixin',
                        success: function (res) {
                            _that.isLogin = true
                            _that.userInfo.avatarUrl = res.userInfo.avatarUrl
                            _that.userInfo.nickName  = res.userInfo.nickName
                            // 设置全局变量
                            getApp().globalData.userInfo.avatarUrl = res.userInfo.avatarUrl
                            getApp().globalData.userInfo.nickName  = res.userInfo.nickName
                            getApp().globalData.isLogin = true
                        }
                      });
                    }
                });
            }

为什么我点击button按钮时没有弹出需要用户授权的弹窗难道微信取消了这个步骤了吗?
而且uni.getUserInfo 方法可以返回用户的昵称头像,加密矢量这些数据,拿到这些数据我可以通过后端服务器请求微信的接口获取用户的openId、地区、性别、手机号这些敏感信息了吧?

如果不是我想的这样的话,那怎么实现当用户点击进入小程序时,弹窗授权获取用户手机号等信息呢?试了好多方法根本就没有出现弹窗。

回复
阅读 2.6k
2 个回答

在用户未授权过的情况下调用此接口,将不再出现授权弹窗,会直接进入 fail 回调。在用户已授权的情况下调用此接口,可成功获取用户信息。
wx.getUserInfo


在ide缓清空一下缓存,重新点击授权就可以弹出来了,你看下创建小程序时官方给的例子也行,我刚刚试了下确实没授权过时可以弹窗的,授权过之后就不在弹窗了
image

使用wx.getSetting获取用户授权

宣传栏