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

微信小程序中提供了相关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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,678评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 如果没有遇见你我将会是在哪里日子过得怎么样人生是否要珍惜……我不能只依靠片片回忆活下去⋯⋯——邓丽君《我只在乎你》...
    未可_Win阅读 740评论 4 27
  • 2017.03.05 周日了,挺天气预报说有大风,于是选了室内活动。 不过好像上午风也并不是很大。 吃过早饭,先写...
    摹喵居士阅读 261评论 0 0