注册登录

小程序拒绝授权恢复办法,小程序授权登录失败再重新登录

2018-09-06
导读:很多人在进入小程序之后,会弹出一个窗口,允许授权,很多用户会不经意间关闭拒绝,那么对于小程序开发者来说,需要如何取消这种拒绝授权呢,下面为大家解答。...

很多人在进入小程序之后,会弹出一个窗口,允许授权,很多用户会不经意间关闭拒绝,那么对于小程序开发者来说,需要如何取消这种拒绝授权呢,下面为大家解答。

小程序拒绝授权恢复办法,小程序授权登录失败再重新登录

1小程序被拒绝授权之后

首先在首页拒绝了授权之后呢,会拉起一个模态弹窗,这点和上边那篇文章中一样的。 
app.js中改写一下getUserInfo这个函数

getUserInfo:function(cb){
    var that = this
    if(this.globalData.userInfo){
      typeof cb == "function" && cb(this.globalData.userInfo)
    }else{
      //调用登录接口
      wx.login({
        success: function () {
          wx.getUserInfo({
            success: function (res) {
              that.globalData.userInfo = res.userInfo
              typeof cb == "function" && cb(that.globalData.userInfo)
            },
            fail: function(){
              wx.showModal({
                title: '用户未授权',
                content: '如需正常使用小程序功能,请按确定并且在【我的】页面中点击授权按钮,勾选用户信息并点击确定。',
                showCancel: false,
                success: function (res) {
                  if (res.confirm) {
                    console.log('用户点击确定')
                  }
                }
              })
            }
          })
        }
      })
    }
  }

如果用户拒绝了授权,则会弹出一个框:

2引导用户到重新授权按钮

上步中已经提到,需要用户到另一个tab中再点击一个按钮,为什么要这么设置呢。主要是因为单单靠用户点击右上角来设置这个授权有那么一些麻烦,因为需要经以下这些步骤:

  • 用户点击右上角【…】
  • 关于XXX(小程序的名称)
  • 再点击右上角【…】
  • 选择设置
  • 打开用户信息

……一看到就已经想手动再见了  所以我选择在【我的】这个tab中添加一个用户未授权时才能看到的button,点击了这个神奇的button,就能再次选择是否授权。      先别急着吐槽按钮丑,看码:  我在这个页面中首先加了一个叫做noAuthorized的变量,它的默认值是true,代表【是的,就是没授权咋地了?】

给这个按钮绑定的事件:

tapToAuthorize: function(){
    //再授权
    wx.openSetting({
      success: (res) => {
        /*
         * res.authSetting = {
         *   "scope.userInfo": true,
         *   "scope.userLocation": true
         * }
         */
         //因为openSetting会返回用户当前设置,所以通过res.authSetting["scope.userInfo"]来判断用户是否勾选了【用户信息】这一项
        if (res.authSetting["scope.userInfo"]===true){
          var that = this
          app.getUserInfo(function (userInfo) {
            //更新数据
            that.setData({
              userInfo: userInfo,
              noAuthorized: false
            })
          })
        }
        else{
          wx.showModal({
            title: '用户未授权',
            content: '如需正常使用小程序,请点击授权按钮,勾选用户信息并点击确定。',
            showCancel: false,
            success: function (res) {
              if (res.confirm) {
                console.log('用户点击确定')
              }
            }
          })
        }
      }
    })
  }

如此前提到的文中所说,小程序提供了wx.openSetting(OBJECT)和wx.getSetting(OBJECT),前者可以调起客户端小程序设置界面,返回用户设置的操作结果,后者可以获取用户当前设置。由于此处已经调用了openSetting可以返回操作结果进行判断,所以第二个就用不上了。然后,

  1. 点击授权按钮后,先弹出一个框

  2. 如果勾选了用户信息并点击了确定,则setdata后页面刷新,按钮消失,显示用户头像昵称等信息。

  3. 如果没有勾选又点击了确定,则再次弹出模态弹窗,提示授权的重要性: 
 HiShop小程序工具提供多类型商城/门店小程序制作,可视化编辑 1秒生成5步上线。通过拖拽、拼接模块布局小程序商城页面,所看即所得,只需要美工就能做出精美商城。
重磅推荐:小程序开店目录

第一部分:小商店是什么

第二部分:如何开通一个小商店

第三部分:如何登录小商店

第四部分:开店任务常见问题

第五部分:小商店可以卖什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收货/物流

第九部分:小程序怎么结算

第十部分:小程序客服

第十一部分:电商创业

第十二部分:小程序游戏开发

电话咨询 微信咨询 预约演示 0元开店