小程序拒絕授權(quán)恢復(fù)辦法,小程序授權(quán)登錄失敗再重新登錄
很多人在進(jìn)入小程序之后,會彈出一個窗口,允許授權(quán),很多用戶會不經(jīng)意間關(guān)閉拒絕,那么對于小程序開發(fā)者來說,需要如何取消這種拒絕授權(quán)呢,下面為大家解答。
1小程序被拒絕授權(quán)之后
首先在首頁拒絕了授權(quán)之后呢,會拉起一個模態(tài)彈窗,這點和上邊那篇文章中一樣的。
app.js中改寫一下getUserInfo這個函數(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: '如需正常使用小程序功能,請按確定并且在【我的】頁面中點擊授權(quán)按鈕,勾選用戶信息并點擊確定。', showCancel: false, success: function (res) { if (res.confirm) { console.log('用戶點擊確定') } } }) } }) } }) } }
如果用戶拒絕了授權(quán),則會彈出一個框:
2引導(dǎo)用戶到重新授權(quán)按鈕
上步中已經(jīng)提到,需要用戶到另一個tab中再點擊一個按鈕,為什么要這么設(shè)置呢。主要是因為單單靠用戶點擊右上角來設(shè)置這個授權(quán)有那么一些麻煩,因為需要經(jīng)以下這些步驟:
- 用戶點擊右上角【…】
- 關(guān)于XXX(小程序的名稱)
- 再點擊右上角【…】
- 選擇設(shè)置
- 打開用戶信息
……一看到就已經(jīng)想手動再見了 所以我選擇在【我的】這個tab中添加一個用戶未授權(quán)時才能看到的button,點擊了這個神奇的button,就能再次選擇是否授權(quán)。 先別急著吐槽按鈕丑,看碼: 我在這個頁面中首先加了一個叫做noAuthorized的變量,它的默認(rèn)值是true,代表【是的,就是沒授權(quán)咋地了?】
給這個按鈕綁定的事件:
tapToAuthorize: function(){ //再授權(quán) wx.openSetting({ success: (res) => { /* * res.authSetting = { * "scope.userInfo": true, * "scope.userLocation": true * } */ //因為openSetting會返回用戶當(dāng)前設(shè)置,所以通過res.authSetting["scope.userInfo"]來判斷用戶是否勾選了【用戶信息】這一項 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: '如需正常使用小程序,請點擊授權(quán)按鈕,勾選用戶信息并點擊確定。', showCancel: false, success: function (res) { if (res.confirm) { console.log('用戶點擊確定') } } }) } } }) }
如此前提到的文中所說,小程序提供了wx.openSetting(OBJECT)和wx.getSetting(OBJECT),前者可以調(diào)起客戶端小程序設(shè)置界面,返回用戶設(shè)置的操作結(jié)果,后者可以獲取用戶當(dāng)前設(shè)置。由于此處已經(jīng)調(diào)用了openSetting可以返回操作結(jié)果進(jìn)行判斷,所以第二個就用不上了。然后,
-
點擊授權(quán)按鈕后,先彈出一個框
-
如果勾選了用戶信息并點擊了確定,則setdata后頁面刷新,按鈕消失,顯示用戶頭像昵稱等信息。
- 如果沒有勾選又點擊了確定,則再次彈出模態(tài)彈窗,提示授權(quán)的重要性:
第二部分:如何開通一個小商店