搜尋
首頁微信小程式小程式開發微信小程式取消授權問題:使用者拒絕授權了,該怎麼處理呢?

在做小程式開發的時候,我們常常會需要取得使用者的一些權限。例如取得使用者資訊用於直接登錄,取得地理位置用於定位等。但要是用戶拒絕授權了,該怎麼處理呢?

問題分析

在小程式裡面,取得到使用者權限是進行某些操作的必要前提。例如在進入小程式的時候,獲取到用戶信息,拿到 unionId 對應到自己平台的帳號進行登錄,免去用戶自己輸入帳號密碼,這就是一個不錯的體驗。

當我們呼叫wx.getUserInfo 或wx.getLocation 這種需要使用者授權的API 時,小程式會彈框讓使用者選擇授權:

當使用者選擇允許後,下次再進入小程式就不會再詢問了,直接獲得使用者授權(除非將小程式刪了再進入)。這裡的問題在於,當使用者點了拒絕之後,就拿不到相關授權了,而且在一段時間內,進入小程式都不會再出現這個彈框。

從使用者體驗及保護隱私的角度考慮,小程式最好是不用授權也可以使用(或體驗)。但有些類型的小程式確實是需要拿到使用者資訊才能使用的。這裡提供一個簡單的解決方案。

解決方案

以取得使用者資訊直接登入為例。增加一個授權頁面,作為進入小程式的第一個頁面,在這裡取得使用者資料和登入。預設可以什麼都不顯示,也可以當作引導頁來使用。

取得使用者資訊需要用到 wx.login 和 wx.getUserInfo 兩個 API,關於這兩個 API 的具體資訊大家可以到官方文件去查看。

增加一個登陸方法,程式碼如下:

//登录
login: function () {
  var that = this
  if (typeof success == "function") {
    this.data.getUserInfoSuccess = success
  }
  wx.login({
    success: function (res) {
      var code = res.code;
      wx.getUserInfo({
        success: function (res) {
          //平台登录
        },
        fail: function (res) {
          that.setData({
            getUserInfoFail: true
          })
        }
      })
    }
  })
}
  • 當上門程式碼走到了 fail 裡面,就可以認為在取得授權的時候,用戶點了拒絕。當getUserInfoFail 為true 的時候,可以展示一個取得授權的按鈕,例如像這樣:

接下來介紹另一個API : wx.openSetting ,使用wx.openSetting 可以跳到小程式的授權設定介面,在安卓裡面它長這樣:

在點擊授權按鈕後跳到這裡,讓用戶授權了才給進入首頁,否則就停留在授權頁面。

但還有個小問題,這個API 是基礎函式庫1.1.0 才有的,所以需要做相容處理:

所以,最後跳轉授權的程式碼如下:

//跳转设置页面授权
openSetting: function () {
  var that = this
  if (wx.openSetting) {
    wx.openSetting({
      success: function (res) {
        //尝试再次登录
        that.login()
      }
    })
  } else {
    wx.showModal({
      title: '授权提示',
      content: '小程序需要您的微信授权才能使用哦~ 错过授权页面的处理方法:删除小程序->重新搜索进入->点击授权按钮'
    })
  }
}
  • 還好1.1.0 已結算是比較早的版本了,現在都出到1.3.0 了。

同樣的處理方式也可以用在取得別的權限上

#相關文章:

微信小程式授權機制詳解

微信小程式實作同步請求授權的實例分析

以上是微信小程式取消授權問題:使用者拒絕授權了,該怎麼處理呢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具