今天把微信小程序转到头条上,发现头条有个自检环节
要求检查:用户取消授权后是否可以再次进入授权流程
才发现似乎之前并未考虑这点,折腾一番,记录一下:
//获取用户权限设置
uni.getSetting({
success(res) {
if (res.authSetting['scope.camera'] == false) {
//第一次执行,实际authSetting并没有值,也就不是false,故进入的是最后的授权流程
//再次进入时如果未授权则打开设置页面
console.log('用户拒绝授权')
uni.openSetting({
success(res) {
if(res.authSetting['scope.camera'] == true){
//用户在设置页面给予授权
console.log('用户设置授权')
//执行代码
}else{
//用户在设置页面未授权返回,弹出提示
console.log('用户未设置授权')
uni.showToast({
icon:'none',
title:'未授权将无法使用'
})
}
}
});
} else {
//进入首次授权流程
uni.authorize({
scope: 'scope.camera',
success() {
//如果这里直接就给了授权,则一切正常;
//否则下次进入后直接进入权限设置页面
console.log('用户已同意授权')
//执行代码
}
})
}
}
})
不知道大家是否也是类似的流程,琢磨了半天才弄清楚……
我用的是uniapp开发,uni. == wx.