在平时开发中,用户在获取相册,位置等等权限时,我们开发者应当给予提醒其授权,将授权权力交给用户,以下是uniapp对应的api和我整理的相关逻辑代码。
注意:正式开发中,封装一个js文件,将其封装为一个函数,可以在需要的地方调用传入对应scope写需求代码即可,将提示和提醒框等优化更佳,这里是为了方便理解。
官方相关api
对应权限scope
代码参考
// $scopeId----需要授权的对应授权码
gloabSetting($scopeId) {
new Promise((resove, reject) => {
uni.getSetting({ // 获取当前授权信息
success: (res) => {
if (res.authSetting[$scopeId]) { // 权限已授权直接返回true,后续就是需求代码
resove(true)
}
else {
uni.authorize({ // 向用户发起授权请求
scope:$scopeId,
success:()=>{
resove(true) // 用户同意授权返回true,后续就是需求代码
},
fail: (err) => {
reject(false)
uni.showModal({
title:'提醒',
content:'您需要授权该功能',
success(status) {
if(status.confirm){
uni.openSetting() //调起客户端小程序设置界面
} else {
uni.showToast({
title:'您拒绝了授权该功能',
icon:'none'
})
}
}
})
}
})
}
},
fail: (err) => {
console.log(err, '报错信息');
}
})
})
}