uniapp WeChat Mini-Programm Autorisierungs-Datenschutzprozess Es gibt keine Betrugsaufzeichnungen im Internet!

Zuallererst: Wann müssen wir Vorgänge autorisieren? Wenn wir beispielsweise diese Schnittstellen in der folgenden Abbildung aufrufen, müssen wir Benutzer zuerst um die Autorisierung bitten. Diese Richtlinie lautet Überprüfen Sie es ab 24:00 Uhr am 21. Februar 2022. Die Schnittstelle fügt Benutzerautorisierungsvorgänge hinzu. Einzelheiten finden Sie in derWeChat-Dokumentation

Die Autorisierungslogik laut offizieller Website bedeutet: 

Zu diesem Zeitpunkt bin ich in eine Falle geraten. Nachdem ich die gesamte oben genannte Logik geschrieben hatte, stellte ich fest, dass die Schnittstelle immer wieder versagte. Ich konnte es nicht herausfinden. Schließlich hatte ich plötzlich eine Idee. Als ich es tat Im Umgang mit den Datenschutzrichtlinien von WeChat habe ich „Album speichern“ aufgerufen. Funktion: Diese Datenschutzkategorie muss zu den Richtlinien zum Schutz der Privatsphäre von Benutzern im Backend-Verwaltungssystem des Miniprogramms hinzugefügt werden . Nach abschließender Überprüfung lag es tatsächlich daran! ! Im Dokument wird nicht erwähnt, dass dieser Schritt erforderlich ist. Ich hoffe, dass Brüder, die diesen Artikel lesen, diese Falle vermeiden können!

Fügen Sie unten meinen Autorisierungslogikcode ein (nur als Referenz).

getAuthority({ commit, state }, val) { //val:权限名称 和触发函数
			return new Promise(async (resolve, reject) => {
				let authorityMap = {
					'scope.werun': '微信运动',
					'scope.bluetooth': '蓝牙',
				}
				if (state.hasLogin) {
					uni.getSetting({
						async success(res) {
							// console.log(res);
							if (!res.authSetting[val.type]) {
									wx.requirePrivacyAuthorize({
										success: () => {
											// 用户同意授权
											// 继续小程序逻辑
											console.log("1");
											uni.authorize({
												scope: val.type,
												async success(res) {
													let a = await val.method()
													console.log("a", a);
													resolve(a)
												},
												fail() {
													console.log("2");
													uni.showModal({
														content: `为了您良好的用户体验,请允许${authorityMap[val.type]}权限`,
														showCancel: false,
														success() {
															uni.openSetting({
																async success(settingdata) {
																	if (settingdata.authSetting[val.type]) {
																		let a = await val.method()
																		console.log("a", a);
																		resolve(a)
																	} else {
																		console.log('获取权限失败')
																		uni.showToast({
																			title: '获取权限失败',
																			icon: 'error',
																			duration: 2000
																		})
																	}
																}
															})
														}
													})
												}
											})
										},
										fail: () => {}, // 用户拒绝授权
										complete: () => {}
									})

							} else {
								let a = await val.method()
								console.log("a", a);
								resolve(a)

							}
						}
					})
				}

			})
		},

verwenden:

	let authorityRes = await this.$store.dispatch("getAuthority", {
						type: 'scope.bluetooth',
						method: async () => {
							return new Promise(async (resolve) => {
								this.$jumpTo(`/pages-clockIn/weight/weightRecord/index`)
								resolve(1)
							})
						}
					})
					console.log("authorityRes", authorityRes);

Natürlich können auch asynchrone Funktionen an die Methode übergeben werden, beispielsweise der Aufruf einer Schnittstelle.

Supongo que te gusta

Origin blog.csdn.net/m0_57033755/article/details/134161332
Recomendado
Clasificación