微信小程序“授权失败”场景的处理

微信小程序中提供了相关API 让开发者能获取到微信用户的相关信息,在首次去获取的时候会展示一个用户是否同意授权的对话框。有不少线上的小程序都没有处理好用户“拒绝授权”导致的“授权失败”场景。

私认为,开发微信小程序在用户授权上有一个要点:除非非常有必要,不要一进入小程序就申请授权,而是仅需要授权的页面才申请——这样让用户的心理负担没那么大。站在用户的角度,有时候我是很讨厌这种一进入小程序就申请授权的行为,毕竟头像昵称这些本质上还是属于用户的隐私,你小程序不给个理由就要拿去,我还是很反感的。同时,也应该做好因用户拒绝授权导致的“授权失败”场景的优雅处理。

以上内容加标题都是剽窃的,不管了。下边就写我自己需要用到的代码吧。

var openid = wx.getStorageSync('openid');
if (!openid) {
  console.log("用户未授权");
  wx.getSetting({
  success: function(data) {
    if (data.authSetting["scope.userInfo"] == false) {
      wx.showModal({
        title: '用户未授权',
        content: '如需登录并正常使用,请按确定并在授权管理中选中“用户信息”,然后点击确定即可正常使用。',
        showCancel: false,
        success: function (res) {
          if (res.confirm) {
            wx.openSetting({
              success: function success(res) {
                if (res.authSetting["scope.userInfo"] == true) {
                  console.log("用户已授权");
                  app.getUserInfo(); // 自己用来获取用户数据的函数
                }
               }
             });
           }
         }
       })
      }
    }
  });
}

其中 app.getUserInfo(); 是自己用来获取用户数据的函数,可以参考之前的文章获取小程序的openid与unionid

参考文档:提升用户体验,微信小程序“授权失败”场景的优雅处理

你可能感兴趣的:(微信小程序“授权失败”场景的处理)