最近公司做了一些有關微信小程序的項目,涉及到授權獲取用戶基本信息,但是在拒絕授權之后就不會再出現授權窗口;
看網上也有很多人遇到了同樣的問題,所以記錄下來我的處理方法,供大家和自己學習和記錄:
當調用小程序 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 }
以上是我實現的內容,沒做處理,希望對大家有幫助!!!噴子勿噴
|