小程序登录wx.getUserInfo不能弹出授权窗口后的解决方案

微信更新api后,wx.getUserInfo在开发和体验版本都不能弹出授权窗口。微信文档说明:

注意:此接口有调整,使用该接口将不再出现授权弹窗,请使用  引导用户主动进行授权操作。

调用接口函数wx.getUserInfo时:

1)当用户未授权过,调用该接口将直接报错
2)当用户授权过,可以使用该接口获取用户信息

对此,给出以下解决方案。

wx.getUserInfo({
        withCredentials: true,
        success: function (res) {
          //此处为获取微信信息后的业务方法
        
        },
        fail: function () {
         //获取用户信息失败后。请跳转授权页面
         wx.showModal({
          title: '警告',
          content: '尚未进行授权,请点击确定跳转到授权页面进行授权。',
          success: function (res) {
           if (res.confirm) {
            console.log('用户点击确定')
            wx.navigateTo({
             url: '../tologin/tologin',
            })
           }
          }
         })
        }
       })
调取该方法失败后跳转到授权页面。

授权页面加入代码


并在js中,加入这个方法

 bindGetUserInfo: function(e){
   var that = this;
   //此处授权得到userInfo
   console.log(e.detail.userInfo);
   //接下来写业务代码

   //最后,记得返回刚才的页面
   wx.navigateBack({
   delta: 1
   })
  }


至此,即可完成引导用户手动授权的过程。解决此次更新api所带来的问题。

原文链接:https://blog.csdn.net/xishuchen0520/article/details/80410861

你可能感兴趣的:(微信&小程序开发)