• 首頁 > 上網技巧 > 電腦小技巧 > 微信小程序用戶拒絕授權的解決方案

    微信小程序用戶拒絕授權的解決方案

    時間:2019-08-19 17:42 作者:QQ地帶 我要評論

    由于小程序改版之后,用戶第一次進入小程序時,小程序并不會主動彈出授權界面。此時我們得需要判斷用戶是否已經授權。
     
    即,當前app.js的globalData下的userInfo是否能獲取到用戶的信息。
     
    我們在app.js中可以看到大致如下代碼。在此代碼的基礎上進行修改,下面代碼中else部分為用戶未授權的情況下執行。若用戶未授權,則強制用戶跳轉到/pages/auth/auth頁面,該頁面為授權頁面。
     
     
        // 獲取用戶信息
        wx.getSetting({
          success: res => {
            if (res.authSetting['scope.userInfo']) {
              // 已經授權,可以直接調用 getUserInfo 獲取頭像昵稱,不會彈框
              wx.getUserInfo({
                success: res => {
                  // 可以將 res 發送給后臺解碼出 unionId
                  this.globalData.userInfo = res.userInfo
     
                  // 由于 getUserInfo 是網絡請求,可能會在 Page.onLoad 之后才返回
                  // 所以此處加入 callback 以防止這種情況
                  if (this.userInfoReadyCallback) {
                    this.userInfoReadyCallback(res)
                  }
                }
              })
            }else{
              //未授權,獲取用戶信息失敗,用戶拒絕授權
              wx.reLaunch({
                url: '/pages/auth/auth',
              })
            }
          }
        })
      },
    當用戶被強制跳轉過此授權頁面后。看到頁面如下:
     
    此處采用的是colorUI框架。
     
     
     
    按鈕如下:
     
    <button class='cu-btn  bg-green shadow lg block' open-type="getUserInfo" bindgetuserinfo="onGetUserInfo">微信登錄</button>
     
     
    用戶點擊微信登錄后,彈出授權頁面。此時,用戶有兩個選擇。1.直接點擊授權。2.取消授權。
     
    按鈕綁定的事件代碼如下:
     
    //用戶點擊微信授權登錄按鈕回調函數
      onGetUserInfo:function(e){
       
        //第二種。用戶點擊取消授權的情況
        if (e.detail.userInfo == null){//授權失敗,取消授權
          console.log("授權失敗,取消授權");
          wx.showModal({
            title: '未授權',
            content: '為了不影響您的使用,請開啟相應的權限哦~',
            showCancel: false,
            success: res => {
              if (res.confirm) {
                //點擊取消,重新獲取授權
                wx.openSetting({
                  success: data => {
                    console.log(data)
                    if (data.authSetting["scope.userInfo"] == true){//判斷是否授權
                       //重新獲取用戶數據
                      wx.getUserInfo({
                        success: function (res) {
                          console.log(res.userInfo);
                         //授權后將app.js中的userinfo重新賦值。                   
                          getApp().globalData.userInfo = res.userInfo;
                           //頁面跳轉
                          wx.reLaunch({
                            url: "/pages/activitys/activitys"
                          })
                        }
                      })                  
                    }
                  },
                  fail: function () {
                    console.info("設置頁面失敗");
                  }
                });
              }
            }
          });
     
         //第一種。用戶點擊授權的情況
        }else{
          console.log(e.detail.userInfo);
            //授權后將app.js中的userinfo重新賦值。  
          getApp().globalData.userInfo = e.detail.userInfo;  
          //頁面跳轉
          wx.reLaunch({
            url:"/pages/activitys/activitys"
          })
        }
      }
    ,若用戶一直不授權,則無法進入小程序,且一直停留在授權頁面。直到授權才能正常使用。
     

    標簽: 微信小程序
    頂一下
    (0)
    0%
    踩一下
    (0)
    0%

    Google提供的廣告

    pk10最牛稳赚计划软件
  • 搜狐足球比分直播 天津十一选五最新开奖结果 双色球奖项对照表 fc热血篮球手机版下载 快乐飞艇彩票首页 黑龙江快乐十分直播 新优惠网站送彩金 欢乐捕鱼人其他游戏 新疆十一选五专家推号 中国竞彩网竞彩投注比例 梅西五大联赛总进球 江西快3走势图基本 微信做牛牛代理赚钱吗 网上博狗体育 2019年最火网络赚钱项目