VorwortBei der Entwicklung von WeChat-Applets müssen Sie häufig Seiten verwenden, die bestimmte Benutzerberechtigungen erfordern. Wenn Sie sich beispielsweise anmelden möchten, müssen Sie persönliche Informationen abrufen. Wenn Sie eine Gesichtserkennung durchführen möchten, müssen Sie Kameraberechtigungen abrufen. Wenn Sie Standortkartenfunktionen ausführen möchten, müssen Sie die Standortberechtigungen des Benutzers abrufen. Wenn Sie Bilder im Album des Benutzers speichern möchten, müssen Sie Albumberechtigungen abrufen usw. WeChat-Umfangsprozess: Die meisten Funktionen sind ohne Autorisierung nicht verfügbar. Normalerweise überprüfe ich, ob die Berechtigung aktiviert ist, und wenn sie aktiviert ist, verwende ich sie weiterhin. Wenn sie nicht aktiviert ist, frage ich nach, ob ich weiterhin eine Autorisierung anfordern kann. Wenn sie immer noch abgelehnt wird, frage ich nach und lasse den Benutzer manuell zur Einstellungsseite gehen, um sie zu aktivieren … #Normale LogikAufgeschrieben könnte das Ganze aber so aussehen: wx.getSetting({ Erfolg(res)=>{ wenn (!res.authSetting['scope']) { console.log('Nicht autorisiert') wx.autorisieren({ Umfang: "Umfang", Erfolg() { console.log('Autorisierung erfolgreich') }, scheitern() { console.log('Autorisierung fehlgeschlagen, lassen Sie den Benutzer manuell autorisieren.') wx.showModal({ Titel: 'Warme Tipps', Inhalt: „xxx-Berechtigung ist nicht aktiviert“, showCancel: false, Erfolg(res) { wenn (res.bestätigen) { console.log('Benutzer klickt auf OK') wx.openSetting({ Erfolg(res) { Konsole.log(res.authSetting) res.authSetting = { "scope.camera": wahr, } } }) } sonst wenn (res.abbrechen) { console.log('Benutzer klickt auf Abbrechen') } } }) } }) } anders { console.log('Autorisiert') } }, Fehler(Fehler)=>{} }) Wir schreiben jetzt das Jahr 2012. Wenn dies niedergeschrieben und mit Geschäftslogik vermischt wird, wird es furchtbar. Ich konnte es nicht ertragen, also habe ich einige Zeit damit verbracht, eine Funktion zu kapseln. Geben Sie einfach den angegebenen Berechtigungsnamen ein, um festzustellen, ob der Benutzer die Berechtigung aktiviert hat. Wenn sie nicht aktiviert ist, wird eine Eingabeaufforderung angezeigt. Wenn sie immer noch nicht aktiviert ist, gehen Sie zur Einstellungsseite, um sie manuell zu aktivieren (kurz gesagt, sie muss aktiviert werden). Ursprünglich wollte ich einen Codeausschnitt schreiben, stellte aber später fest, dass beim Aufruf von openSetting im Tool ein Problem auftrat, sodass ich aufgeben musste. #Codedetails// utils/auth.js /** * @param { * authType: Autorisierungstyp* } */ module.exports = asynchrone Funktion wxAuth(authType) { // scopeArr-Referenz: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html lass UmfangArr = [ "Benutzerinfo", "Benutzerstandort", "BenutzerstandortHintergrund", "Adresse", "Rechnungstitel", "Rechnung", "wir sind", "aufzeichnen", "SchreibeFotosAlbum", "Kamera", ]; wenn (scopeArr.indexOf(authType) == -1) { return console.error("Bitte geben Sie den richtigen Autorisierungstyp ein"); } let scope = "Bereich." + Authentizitätstyp; let isUserSet = warte auf getSettingSync(Umfang); wenn (isUserSet) true zurückgibt; let isAuthorize = warte auf authorizeSync(scope); wenn (isAuthorize) true zurückgibt; lass showModalMes = warte auf showModalSync(Umfang); // Popup-Fenster mit der Aufforderung zur Autorisierung if (showModalMes) { // Manuelle Autorisierung durchführen let openSet = await openSettingSync(scope); wenn (öffnenSet) { gibt true zurück; } anders { gibt false zurück; } } anders { // Autorisierung ablehnen return false; } }; // Feststellen, ob der Benutzer die Autorisierungsfunktion aktiviert hat getSettingSync(scope) { returniere neues Promise((lösen, ablehnen) => { wx.getSetting({ Erfolg(res) { wenn (!res.authSetting[Umfang]) { console.log("Nicht autorisiert"); Lösung (falsch); } anders { console.log("Autorisiert"); Entschlossenheit (wahr); } }, Fehler(Fehler) { ablehnen(); console.error("wx.getSetting-Fehler", err); }, }); }); } // Benutzerautorisierung anfordern Funktion authorizeSync(scope) { returniere neues Promise((lösen, ablehnen) => { wx.autorisieren({ Umfang: Umfang, Erfolg() { Entschlossenheit (wahr); console.log("Autorisierung erfolgreich"); }, scheitern() { Lösung (falsch); console.log("Autorisierung fehlgeschlagen"); }, }); }); } // Popup-Fenster fordert den Benutzer zur manuellen Autorisierung auf Funktion showModalSync(scope) { returniere neues Promise((lösen, ablehnen) => { wx.showModal({ Titel: "Tipps", Inhalt: `Für ein besseres Benutzererlebnis autorisieren Sie bitte die Funktion ${scope}`, confirmText: "Zur Autorisierung gehen", showCancel: false, Erfolg(res) { wenn (res.bestätigen) { console.log("Zur Bestätigung klicken"); Entschlossenheit (wahr); } sonst wenn (res.abbrechen) { Lösung (falsch); } }, Fehler(Fehler) { ablehnen(); console.error(err, "wx.showModal-Fehler"); }, }); }); } // Ruft die Einstellungsschnittstelle des Client-Applets auf und gibt das von der Benutzerfunktion openSettingSync(scope) { festgelegte Operationsergebnis zurück. returniere neues Promise((lösen, ablehnen) => { wx.openSetting({ Erfolg(res) { Konsole.log(res.authSetting); wenn (res.authSetting[Umfang]) { Entschlossenheit (wahr); } anders { Lösung (falsch); } }, Fehler(Fehler) { ablehnen(); console.error(err, "wx.openSetting-Fehler"); }, }); }); } #verwendenJS-Codereferenz: Authentifizierung importieren aus './../../utils/auth' Seite({ Daten:{ isCameraAuth: false }, beim Laden(){ // Autorisierungscode auth('camera').then(() => { console.log('Autorisierung erfolgreich') dies.setData({ isCameraAuth: wahr } }).catch((err) => { console.error('Autorisierung fehlgeschlagen'); }) } }) WXML-Codereferenz: <!-- index.wxml --> <view>Ist es autorisiert: {{isCameraAuth}}</view> <Kamera wx:if="{{isCameraAuth}}" style="width: 100%; height: 300px;"></Kamera> #Vorschau Zu diesem Zweck habe ich eine Demo erstellt. Klicken Sie auf Demo-Vorschau, um die Vorschau direkt im Entwicklungstool zu öffnen. ZusammenfassenDamit ist dieser Artikel über die Best Practices für die Benutzerautorisierung des WeChat Mini-Programms abgeschlossen. Weitere relevante Inhalte zur Benutzerautorisierung des WeChat Mini-Programms finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
>>: Tutorial zur manuellen Installation und Konfiguration von mysql8.0.11 winx64
Vorwort In tatsächlichen Projekten kann die häufi...
Inhaltsverzeichnis Einführung 1. Was ist one-clic...
Inhaltsverzeichnis 1. setTimeout()-Timer 2. Stopp...
Grammatikregeln SELECT Spaltenname(n) FROM Tabell...
Beim Erstellen eines Zeitfelds STANDARD CURRENT_T...
Vue-Methoden und -Eigenschaften 1. Methoden Verwe...
html: Tatsächlich werden mehrere durchgezogene Kr...
Als ich heute Nginx verwendete, trat ein 500-Fehl...
Inhaltsverzeichnis Vue CLI erstellt ein Vue-Proje...
Umgebungskonfiguration 1: Installieren Sie MySQL ...
1. Einleitung Container nutzen einen Sandbox-Mech...
Vorwort Dieser Artikel stellt hauptsächlich die r...
Inhaltsverzeichnis Überblick Statische Typprüfung...
1. Rufen Sie die Methode der übergeordneten Kompo...
Jede dieser 16 Sites ist eine sorgfältige Lektüre ...