1. 程式人生 > 其它 >uni-app 微信小程式拒絕授權後如何再次授權

uni-app 微信小程式拒絕授權後如何再次授權

在業務中可能會需要獲取使用者當前位置或者手機相機等許可權,微信小程式是需要使用者授權才能使用,但是當用戶拒絕授權後再點選對應位置就會沒有反應。操作程式碼如下,例子為二次授權相機許可權

uni.getSetting({
	success(res) {
		 if (!res.authSetting['scope.camera']) {
						uni.authorize({
							scope: 'scope.camera',
							success(res) {
								// 授權成功
								uni.showToast({
									title:'授權成功',
									icon:'none',
									success:function(){
										uni.redirectTo({
											url:'*******'
										})
									}
								})
							},
							fail() {
								uni.showModal({
									content: '檢測到您沒開啟獲取相機功能許可權,是否去設定開啟?',
									confirmText: "確認",
									cancelText: '取消',
									success: (res) => {
										if (res.confirm) {
											uni.openSetting({
												success: (res) => {
													uni.showToast({
														title: '授權後請重新開啟此頁面',
														icon: 'none',
														success:function(){
															uni.redirectTo({
																url:'********'
															})
														}
													})
												},
												fail: (err) => {
													console.log(err)
												}
											})
										} else {
											uni.showToast({
												title: '獲取授權相機授權失敗',
												icon: 'none',
												success:function() {
													uni.navigateBack()
												}
											})
										}
									}
								})
							}
						})
					}
				},
				fail() {
					uni.showToast({
						title: '獲取授權相機授權失敗',
						icon: 'none',
						success:function() {
							uni.navigateBack()
						}
					})
				}
			})

  其中scope引數配置文件:點選檢視

saveQr(){
                var _this=this;
                uni.getSetting({
                   success(res) {
                       console.log(res);
                      if (!res.authSetting['scope.writePhotosAlbum']) {
                            wx.authorize({
                              scope: 'scope.writePhotosAlbum',
                              success (){
                                   uni.downloadFile({
                                    url:_this.qrCode,
                                    success:(res)=> {
                                        console.log("123123")
                                        uni.saveImageToPhotosAlbum({
                                            filePath:res.tempFilePath,
                                            complete: (e) => {
                                                console.log(e)
                                                _this.tui.toast('儲存成功~')
                                            }
                                        })
                                    }
                                   })
                              },
                              fail(){
                                  uni.showModal({
                                          content: '檢測到您沒開啟儲存到相簿功能許可權,是否去設定開啟?',
                                          confirmText: "確認",
                                          cancelText: '取消',
                                          success: (res) => {
                                              if (res.confirm) {
                                                  uni.openSetting({
                                                      success: (res) => {
                                                        
                                                      },
                                                      fail: (err) => {
                                                          console.log(err)
                                                      }
                                                  })
                                              } else {
                                                  
                                              }
                                          }
                                      })
                                  //_this.tui.toast('您已拒絕儲存~')
                              }
                            })
                          }else{
                              uni.downloadFile({
                                    url:_this.qrCode,
                                    success:(res)=> {
                                        console.log("123123")
                                        uni.saveImageToPhotosAlbum({
                                            filePath:res.tempFilePath,
                                            complete: (e) => {
                                                console.log(e)
                                                _this.tui.toast('儲存成功~')
                                            }
                                        })
                                    }
                              })
                          }
                   }
                })
            },

來源:https://blog.csdn.net/weixin_43827462/article/details/110524481