1. 程式人生 > >關於微信小程序拒絕授權後,重新授權並獲取用戶信息

關於微信小程序拒絕授權後,重新授權並獲取用戶信息

red strong console http 希望 lan showmodal ati .sh

最近公司做了一些有關微信小程序的項目,涉及到授權獲取用戶基本信息,但是在拒絕授權之後就不會再出現授權窗口;

  看網上也有很多人遇到了同樣的問題,所以記錄下來我的處理方法,供大家和自己學習和記錄:

  當調用小程序 wx.getUserInfo(OBJECT) 獲取用戶基本信息時,需要用戶進行授權操作,如果用戶點擊了拒絕,則再次調用該方法就不會出現對應的授權窗口,很是讓人困惑;

  找了許久,最後讓我發現了它:------> wx.openSetting(OBJECT),下面讓我們認識一下:

  wx.openSetting(OBJECT)

  設置:調起客戶端小程序設置界面,返回用戶設置的操作結果;基礎庫 1.1.0 開始支持,低版本需做“兼容處理”

  技術分享圖片

  技術分享圖片

  通過該方法可繼續進行授權操作,不多做解釋,直接上代碼:

技術分享圖片
  1 var loginStatus = true;
  2 getPromission: function() {
  3     if (!loginStatus) {
  4       wx.openSetting({
  5         success: function (data) {
  6           if(data) {
  7             if (data.authSetting["scope.userInfo"] == true) {
  8               loginStatus = true;
  9               wx.getUserInfo({
 10                 withCredentials: false,
 11                 success: function (data) {
 12                   console.info("2成功獲取用戶返回數據");
 13                   console.info(data.userInfo);
 14                 },
 15                 fail: function () {
 16                   console.info("2授權失敗返回數據");
 17                 } 21               });
 22             }
 23           } 25         },
 26         fail: function () {
 27           console.info("設置失敗返回數據");
 28         } 32       });
 33     }else {
 34       wx.login({
 35         success: function (res) {
 36           if (res.code) { 38             wx.getUserInfo({
 39               withCredentials: false,
 40               success: function (data) {
 41                 console.info("1成功獲取用戶返回數據");
 42                 console.info(data.userInfo);
 43               },
 44               fail: function () {
 45                 console.info("1授權失敗返回數據");
 46                 loginStatus = false;
 47                 // 顯示提示彈窗
 48                 wx.showModal({
 49                   title: ‘提示標題‘,
 50                   content: ‘提示內容‘,
 51                   success: function (res) {
 52                     if (res.confirm) {
 53                       console.log(‘用戶點擊確定‘)
 54                     } else if (res.cancel) {
 55                       wx.openSetting({
 56                         success: function (data) {
 57                           if (data) {
 58                             if (data.authSetting["scope.userInfo"] == true) {
 59                               loginStatus = true;
 60                               wx.getUserInfo({
 61                                 withCredentials: false,
 62                                 success: function (data) {
 63                                   console.info("3成功獲取用戶返回數據");
 64                                   console.info(data.userInfo);
 65                                 },
 66                                 fail: function () {
 67                                   console.info("3授權失敗返回數據");
 68                                 } 72                               });
 73                             }
 74                           } 76                         },
 77                         fail: function () {
 78                           console.info("設置失敗返回數據");
 79                         } 83                       });
 84                     }
 85                   }
 86                 });
 87               } 91             });
 92           }
 93         },
 94         fail: function () {
 95           console.info("登錄失敗返回數據");
 96         }100       });
101     }
102   }
技術分享圖片

  以上是我實現的內容,沒做處理,希望對大家有幫助!!!噴子勿噴

關於微信小程序拒絕授權後,重新授權並獲取用戶信息