• 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

  • 相关阅读:
    windows64系统下安装 redis服务 (详细)
    周期信号的傅里叶级数表示
    LeetCode 36——有效的数独
    LeetCode 3——无重复字符的最长子串
    线性时不变系统的卷积
    信号与系统
    C++ 学习笔记之——输入和输出
    LeetCode 74——搜索二维矩阵
    LeetCode 389——找不同
    LeetCode 2——两数相加
  • 原文地址:https://www.cnblogs.com/xqschool/p/15438534.html
Copyright © 2020-2023  润新知