微信小程序沒有授權時(shí)的(de)處理方法 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

微信小程序沒有授權時(shí)的(de)處理方法

發表時(shí)間:2021-3-31

發布人(rén):融晨科技

浏覽次數:147

背景:微信小程序很多都需要(yào / yāo)用戶的(de)微信授權,可是(shì)很多瓜皮用戶會狠心拒絕,但是(shì)不(bù)管用戶怎麽操作,我們必須讓用戶能夠更好的(de)體驗小程序。

過程:我把用戶的(de)操作分四種。

1)用戶直接同意授權。 
2)用戶拒絕授權,進入引導彈窗,用戶繼續拒絕授權。 
3)用戶拒絕授權,進入引導彈窗,用戶點擊授權,進入授權設置頁,用戶點擊授權。 
4)用戶拒絕授權,進入引導彈窗,用戶點擊授權,進入授權設置頁,用戶不(bù)點擊授權,直接退出(chū)。

解決方法:

  1. toMap() {
  2. let that = this;
  3. wx.getSetting({
  4. success(res) {
  5. if (!res.authSetting['scope.userLocation']) {//如果沒有授權
  6. wx.authorize({
  7. scope: 'scope.userLocation',
  8. success: res => {//第一種情況:用戶同意授權
  9. // 發送地(dì / de)圖
  10. that.toMapFin();
  11. }, fail: res => {//用戶點擊了(le/liǎo)取消授權,引導其去授權
  12. wx.showModal({
  13. title: '提示',
  14. content: '定位需要(yào / yāo)您的(de)微信授權才能使用哦~ 錯過授權頁面的(de)處理方法:删除小程序->重新搜索五百強名片進入->點擊授權按鈕',
  15. cancelText: "不(bù)授權",
  16. confirmText: "授權",
  17. confirmColor: "#a08250",
  18. success: function (res) {
  19. if (res.confirm) {
  20. // 這(zhè)個(gè) API 是(shì)基礎庫 1.1.0 才有的(de),所以(yǐ)需要(yào / yāo)做兼容處理:
  21. if (wx.openSetting) {
  22. wx.openSetting({
  23. success: function (res) {//第三種情況:用戶拒絕授權,進入引導彈窗,用戶點擊授權,進入授權設置頁,用戶點擊授權。
  24. that.toMapFin();
  25. }
  26. })
  27. } else {
  28. wx.showModal({
  29. title: '授權提示',
  30. content: '定位需要(yào / yāo)您的(de)微信授權才能使用哦~ 錯過授權頁面的(de)處理方法:删除小程序->重新搜索五百強名片進入->點擊授權按鈕'
  31. })
  32. }
  33. } else if (res.cancel) {//第二種情況:用戶拒絕授權,進入引導彈窗,用戶繼續拒絕授權。
  34. wx.showModal({
  35. title: '提示',
  36. content: '定位失敗,錯過授權頁面的(de)處理方法:删除小程序->重新搜索五百強名片進入->點擊授權按鈕',
  37. showCancel: false,
  38. confirmColor: "#c00",
  39. success: function (res) {
  40. if (res.confirm) {
  41. console.log('用戶點擊确定')
  42. }
  43. }
  44. })
  45. }
  46. }
  47. })
  48. }
  49. })
  50. } else {//用戶原來(lái)已經通過了(le/liǎo)授權,不(bù)必重新調起授權界面。
  51. that.toMapFin();
  52. }
  53. }
  54. })
  55. },
  1. toMapFin(){
  2. wx.chooseLocation({
  3. success: res => {
  4. console.log(res)
  5. let address = res.address + res.name;
  6. this.setData({
  7. "local.address": [address],
  8. "local.longitude": res.longitude,
  9. "local.latitude": res.latitude
  10. })
  11. },
  12. fail: res => { //第四種情況:用戶拒絕授權,進入引導彈窗,用戶點擊授權,進入授權設置頁,用戶不(bù)點擊授權,直接退出(chū)。
  13. wx.showModal({
  14. title: '提示',
  15. content: '定位失敗',
  16. showCancel: false,
  17. confirmColor: "#c00",
  18. success: function (res) { }
  19. })
  20. }
  21. })
  22. },

這(zhè)樣做的(de)話,每次用戶進來(lái)都會查看他(tā)是(shì)否已經授權,如果不(bù)授權的(de)話,都會調起授權提示。

如果是(shì)用戶點擊拒絕授權之(zhī)後,以(yǐ)後每次進來(lái)都再也(yě)不(bù)調起授權提示的(de)話,這(zhè)個(gè)方法就(jiù)不(bù)适合了(le/liǎo)。

需要(yào / yāo)用到(dào)的(de)方法:

wx:getSetting(獲取用戶的(de)當前設置。)

wx.authorize(提前向用戶發起授權請求。調用後會立刻彈窗詢問用戶是(shì)否同意授權小程序使用某項功能或獲取用戶的(de)某些數據,但不(bù)會實際調用對應接口。如果用戶之(zhī)前已經同意授權,則不(bù)會出(chū)現彈窗,直接返回成功。)

wx.openSetting(調起客戶端小程序設置界面,返回用戶設置的(de)操作結果。)

相關案例查看更多