注冊(cè)登錄

小程序拒絕授權(quán)恢復(fù)辦法,小程序授權(quán)登錄失敗再重新登錄

2018-09-06
導(dǎo)讀:很多人在進(jìn)入小程序之后,會(huì)彈出一個(gè)窗口,允許授權(quán),很多用戶會(huì)不經(jīng)意間關(guān)閉拒絕,那么對(duì)于小程序開發(fā)者來說,需要如何取消這種拒絕授權(quán)呢,下面為大家解答。...

很多人在進(jìn)入小程序之后,會(huì)彈出一個(gè)窗口,允許授權(quán),很多用戶會(huì)不經(jīng)意間關(guān)閉拒絕,那么對(duì)于小程序開發(fā)者來說,需要如何取消這種拒絕授權(quán)呢,下面為大家解答。

小程序拒絕授權(quán)恢復(fù)辦法,小程序授權(quán)登錄失敗再重新登錄

1小程序被拒絕授權(quán)之后

首先在首頁(yè)拒絕了授權(quán)之后呢,會(huì)拉起一個(gè)模態(tài)彈窗,這點(diǎn)和上邊那篇文章中一樣的。 
app.js中改寫一下getUserInfo這個(gè)函數(shù)

getUserInfo:function(cb){
    var that = this
    if(this.globalData.userInfo){
      typeof cb == "function" && cb(this.globalData.userInfo)
    }else{
      //調(diào)用登錄接口
      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: '用戶未授權(quán)',
                content: '如需正常使用小程序功能,請(qǐng)按確定并且在【我的】頁(yè)面中點(diǎn)擊授權(quán)按鈕,勾選用戶信息并點(diǎn)擊確定。',
                showCancel: false,
                success: function (res) {
                  if (res.confirm) {
                    console.log('用戶點(diǎn)擊確定')
                  }
                }
              })
            }
          })
        }
      })
    }
  }

如果用戶拒絕了授權(quán),則會(huì)彈出一個(gè)框:

2引導(dǎo)用戶到重新授權(quán)按鈕

上步中已經(jīng)提到,需要用戶到另一個(gè)tab中再點(diǎn)擊一個(gè)按鈕,為什么要這么設(shè)置呢。主要是因?yàn)閱螁慰坑脩酎c(diǎn)擊右上角來設(shè)置這個(gè)授權(quán)有那么一些麻煩,因?yàn)樾枰?jīng)以下這些步驟:

  • 用戶點(diǎn)擊右上角【…】
  • 關(guān)于XXX(小程序的名稱)
  • 再點(diǎn)擊右上角【…】
  • 選擇設(shè)置
  • 打開用戶信息

……一看到就已經(jīng)想手動(dòng)再見了  所以我選擇在【我的】這個(gè)tab中添加一個(gè)用戶未授權(quán)時(shí)才能看到的button,點(diǎn)擊了這個(gè)神奇的button,就能再次選擇是否授權(quán)。      先別急著吐槽按鈕丑,看碼:  我在這個(gè)頁(yè)面中首先加了一個(gè)叫做noAuthorized的變量,它的默認(rèn)值是true,代表【是的,就是沒授權(quán)咋地了?】

給這個(gè)按鈕綁定的事件:

tapToAuthorize: function(){
    //再授權(quán)
    wx.openSetting({
      success: (res) => {
        /*
         * res.authSetting = {
         *   "scope.userInfo": true,
         *   "scope.userLocation": true
         * }
         */
         //因?yàn)閛penSetting會(huì)返回用戶當(dāng)前設(shè)置,所以通過res.authSetting["scope.userInfo"]來判斷用戶是否勾選了【用戶信息】這一項(xiàng)
        if (res.authSetting["scope.userInfo"]===true){
          var that = this
          app.getUserInfo(function (userInfo) {
            //更新數(shù)據(jù)
            that.setData({
              userInfo: userInfo,
              noAuthorized: false
            })
          })
        }
        else{
          wx.showModal({
            title: '用戶未授權(quán)',
            content: '如需正常使用小程序,請(qǐng)點(diǎn)擊授權(quán)按鈕,勾選用戶信息并點(diǎn)擊確定。',
            showCancel: false,
            success: function (res) {
              if (res.confirm) {
                console.log('用戶點(diǎn)擊確定')
              }
            }
          })
        }
      }
    })
  }

如此前提到的文中所說,小程序提供了wx.openSetting(OBJECT)和wx.getSetting(OBJECT),前者可以調(diào)起客戶端小程序設(shè)置界面,返回用戶設(shè)置的操作結(jié)果,后者可以獲取用戶當(dāng)前設(shè)置。由于此處已經(jīng)調(diào)用了openSetting可以返回操作結(jié)果進(jìn)行判斷,所以第二個(gè)就用不上了。然后,

  1. 點(diǎn)擊授權(quán)按鈕后,先彈出一個(gè)框

  2. 如果勾選了用戶信息并點(diǎn)擊了確定,則setdata后頁(yè)面刷新,按鈕消失,顯示用戶頭像昵稱等信息。

  3. 如果沒有勾選又點(diǎn)擊了確定,則再次彈出模態(tài)彈窗,提示授權(quán)的重要性: 
 HiShop小程序工具提供多類型商城/門店小程序制作,可視化編輯 1秒生成5步上線。通過拖拽、拼接模塊布局小程序商城頁(yè)面,所看即所得,只需要美工就能做出精美商城。
重磅推薦:小程序開店目錄

第一部分:小商店是什么

第二部分:如何開通一個(gè)小商店

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

第四部分:開店任務(wù)常見問題

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

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

第七部分:小程序直播

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

第九部分:小程序怎么結(jié)算

第十部分:小程序客服

第十一部分:電商創(chuàng)業(yè)

第十二部分:小程序游戲開發(fā)

電話咨詢 微信咨詢 預(yù)約演示 0元開店