首先使用 getSetting 来获取小程序所获取的所有权限
Taro.getSetting({})
getSetting里面为对象,对象里面有一个 success 的属性,success的返回值res里面有authSetting对象,里面有各种小程序获取的权限,例如:scope.writePhotosAlbum为图片保存的权限,如果为true则为有保存权限,为false则没有保存权限;
在第一次没有权限的情况下使用authorize可以系统获取权限(该权限获取为系统自带,第二次不会出现该弹窗,因此在authorize为fail的情况下,则需要点开系统的权限获取方式,使用openSetting,可以打开系统权限选择)
```javascript
Taro.getSetting({//获取系统权限,看看有没有保存图片的权限
success: function (res) {
if (!res.authSetting['scope.writePhotosAlbum']) {//系统权限为false
Taro.authorize({//系统提示获取保存权限(提示的权限获取为选择,用户可选择同意,也可以选择不同意)
scope: 'scope.writePhotosAlbum',
success: function () {
//系统提示获取权限成功,进行权限获取成功之后的操作
},
fail: function () {
//系统提示权限获取失败,需要我们主动进行提示来获取权限
Taro.showModal({//也为可同意和不同意
title: '提示',
content: '若点击不授权,将无法使用保存图片功能',
cancelText: '不授权',
cancelColor: '#999',
confirmText: '授权',
confirmColor: '#f94218',
success(_r) {
if (_r.confirm) {//我们主动提示的权限的获取对话框,用户点击同意
Taro.openSetting()//打开系统的设置,里面可以选择权限的开启与关闭
}
}
})
}
})
} else {//系统权限为true
//进行保存图片权限获取后的操作
}
}
})
本文详细介绍了在微信小程序中如何使用Taro获取用户权限,包括getSetting和authorize的用法。当用户未授予特定权限如scope.writePhotosAlbum时,如何通过showModal提示用户并引导他们进入设置页面openSetting来授权。此过程涉及用户权限管理和小程序权限策略的实现。
2460

被折叠的 条评论
为什么被折叠?



