關於微信小程序拒絕授權後,重新授權並獲取用戶信息
阿新 • • 發佈:2019-02-14
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 }
以上是我實現的內容,沒做處理,希望對大家有幫助!!!噴子勿噴
關於微信小程序拒絕授權後,重新授權並獲取用戶信息