开发 | 第一次打开小程序,用户拒绝登录授权怎么办?

小程序

2017-07-14 18:00

知晓程序注:

现在,有不少小程序都加入了「微信登录」功能,它可以便于用户直接使用微信帐户登录小程序,免去了用户需要额外注册、登录的麻烦。

但在现实中,许多用户都会有意无意「拒绝」了小程序请求登录的权限,导致用户无法正常使用小程序。

知晓程序(微信号 zxcx0101)本期带来的文章,会告诉你如何正确处理用户拒绝授权的情况。


文 | charliesong

大多数小程序的登录界面,都是这样设计的:

这些小程序,在用户一进来就会提示需要授权。有部分人可能就会点「拒绝」,而且这部分用户的比例可能超出我们的预估。

在用户后续操作的时候,点击拒绝的用户可能就无法正常使用小程序了。而且,小程序会缓存一段时间用户的授权数据,询问后的一段时间内会默认拒绝权限,不再弹出授权登录的页面。

这时候,用户只能删除小程序,重新启动、允许授权才能继续操作。

我觉得,好的体验方式是:在必须需要用户授权登录的页面或操作(比如支付,创建表单)的时候,再提醒用户需要登录

如果用户还是点「拒绝」,我们再向用户提示「必须授权登录之后才能继续操作」,请求用户开启相应权限

以「制作器」小程序中,必须要求用户登录的「我的钱包」页面为例,我们来聊聊如何做到这一点。

if (!user) {
  wx.login({
    success: function (res) {
      var code = res.code;
      wx.getUserInfo({
        success: function (res) {
          // 当用户授权成功的时候,保存用户的登录信息
        },
        fail: function (res) { //用户点了 “拒绝”
          wx.showModal({}) // 向用户提示需要权限才能继续
          wx.openSetting({
            success: (res) = & amp;gt; {
              if (res.authSetting["scope.userInfo"]) {} // 如果成功打开授权
              else {} // 如果用户依然拒绝授权
            },
            fail: function () { //调用失败,授权登录不成功
              fail()
            }
          })
        }
      })
    }
  })
}

在「我的钱包」页面,我们可以这样来调用登录逻辑:

var that = this
api.login(function (user) {
  //登录成功
  wx.showNavigationBarLoading()
  wx.showToast({
    title: 'Loading……',
    duration: 5000,
    icon: 'loading'
  })
  api.getUserInfo(function (res) {
        //根据用户资料,获取该用户的余额信息并显示
        wx.hideToast()
        wx.hideNavigationBarLoading();
      }
    },
    function () {
      //没有获取到用户信息,登录失败
    }
})

这样做之后,当用户进入「我的钱包」页面,就是这样了(如果用户已经登录过,就会直接显示内容):

原文地址:http://www.jianshu.com/p/592c60e94e3a

「制作器」小程序使用链接
https://minapp.com/miniapp/3501/

关注「知晓程序」公众号,在微信后台回复「带参二维码」,获取小程序取得带参数小程序码的方法。

zxcx_0208

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中

小程序商店 minapp.com,一扫即用的小程序大全。微信公众号「知晓程序」,做中国最好的小程序报道。

本篇来自栏目

解锁订阅模式,获得更多专属优质内容