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

posted @ 2021-10-22 13:59  小小强学习网  阅读(1110)  评论(0编辑  收藏  举报