Heim >WeChat-Applet >Mini-Programmentwicklung >Problem mit der Autorisierung des WeChat-Applets: Der Benutzer verweigert die Autorisierung. Was soll ich tun?

Problem mit der Autorisierung des WeChat-Applets: Der Benutzer verweigert die Autorisierung. Was soll ich tun?

php是最好的语言
php是最好的语言Original
2018-08-04 11:02:2632557Durchsuche

Bei der Entwicklung kleiner Programme müssen wir häufig einige Berechtigungen von Benutzern einholen. Zum Beispiel das Abrufen von Benutzerinformationen für die direkte Anmeldung, das Abrufen des geografischen Standorts für die Positionierung usw. Doch was ist zu tun, wenn der Nutzer die Autorisierung verweigert?

Problemanalyse

Im Miniprogramm ist das Einholen von Benutzerberechtigungen eine notwendige Voraussetzung für bestimmte Vorgänge. Wenn Sie beispielsweise das Miniprogramm aufrufen, werden die Benutzerinformationen abgerufen und die UnionId, die dem Konto auf der eigenen Plattform entspricht, wird zum Anmelden verwendet, sodass der Benutzer kein Kontokennwort eingeben muss. Dies ist eine gute Erfahrung.

Wenn wir APIs wie wx.getUserInfo oder wx.getLocation aufrufen, die eine Benutzerautorisierung erfordern, öffnet das Miniprogramm ein Feld, in dem der Benutzer die Autorisierung auswählen kann:

Wenn der Benutzer dies zulässt, wird er bei der nächsten Eingabe des Miniprogramms nicht erneut gefragt und die Autorisierung des Benutzers wird direkt eingeholt (es sei denn, das Miniprogramm wird gelöscht und erneut eingegeben). Das Problem besteht darin, dass der Benutzer nach dem Klicken auf „Ablehnen“ die entsprechende Autorisierung nicht erhält und dieses Popup-Fenster beim Aufrufen des Miniprogramms für einen bestimmten Zeitraum nicht erneut angezeigt wird.

Aus Sicht der Benutzererfahrung und des Datenschutzes ist es am besten, Miniprogramme ohne Autorisierung zu nutzen (oder zu erleben). Einige Arten von Miniprogrammen erfordern jedoch Benutzerinformationen, bevor sie verwendet werden können. Hier ist eine einfache Lösung.

Lösung

Nehmen Sie als Beispiel das Erhalten von Benutzerinformationen, um sich direkt anzumelden. Fügen Sie eine Autorisierungsseite als erste Seite zum Aufrufen des Miniprogramms hinzu, auf der Benutzerdaten und Login abgerufen werden. Standardmäßig kann nichts angezeigt werden, oder es kann als Startseite verwendet werden.

Das Abrufen von Benutzerinformationen erfordert die Verwendung von zwei APIs, wx.login und wx.getUserInfo. Spezifische Informationen zu diesen beiden APIs finden Sie in der offiziellen Dokumentation.

Fügen Sie eine Anmeldemethode hinzu. Der Code lautet wie folgt:

//登录
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
          })
        }
      })
    }
  })
}
  • Wenn der Tür-zu-Tür-Code fehlschlägt, kann davon ausgegangen werden, dass der Benutzer auf „Ablehnen“ geklickt hat bei der Erteilung einer Genehmigung. Wenn getUserInfoFail wahr ist, können Sie eine Schaltfläche zum Erhalten einer Autorisierung anzeigen, z. B. diese:

Als nächstes stellen wir eine weitere API vor: wx.openSetting , Verwenden Sie wx.openSetting, um zur Benutzeroberfläche für die Autorisierungseinstellungen des Miniprogramms zu springen. In Android sieht es so aus:

Nach dem Klicken auf die Autorisierungsschaltfläche springt der Benutzer hierher . Sie gelangen erst nach der Autorisierung auf die Homepage, ansonsten bleiben Sie auf der Autorisierungsseite.

Aber es gibt immer noch ein kleines Problem. Diese API ist nur in der Basisbibliothek 1.1.0 verfügbar, daher muss sie kompatibel sein:

Also , der letzte Sprung. Der Unterlizenzierungscode lautet wie folgt:

//跳转设置页面授权
openSetting: function () {
  var that = this
  if (wx.openSetting) {
    wx.openSetting({
      success: function (res) {
        //尝试再次登录
        that.login()
      }
    })
  } else {
    wx.showModal({
      title: '授权提示',
      content: '小程序需要您的微信授权才能使用哦~ 错过授权页面的处理方法:删除小程序->重新搜索进入->点击授权按钮'
    })
  }
}
  • Glücklicherweise wurde 1.1.0 festgelegt und ist eine frühere Version, und es ist jetzt 1.3.0.

Die gleiche Verarbeitungsmethode kann auch verwendet werden, um andere Berechtigungen zu erhalten

Verwandte Artikel:

Detaillierte Erläuterung des Autorisierungsmechanismus des WeChat-Miniprogramms

Instanzanalyse des WeChat-Applets, das die synchrone Anforderungsautorisierung implementiert

Das obige ist der detaillierte Inhalt vonProblem mit der Autorisierung des WeChat-Applets: Der Benutzer verweigert die Autorisierung. Was soll ich tun?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn