腾讯网站开发规范,免费发短信的在线网站,什么是网站开发设计与实现,网站后台更新为什么前台不现实在小程序开发的时候#xff0c;我们总会遇到很多权限问题#xff0c;比如摄像头权限,位置权限,用户信息权限等#xff0c;如果不加以判断#xff0c;很难给用户一个好的体验。
有一天#xff0c;小明来参观一个拍照微信小程序。 他很感兴趣#xff0c;看着精美的页面我们总会遇到很多权限问题比如摄像头权限,位置权限,用户信息权限等如果不加以判断很难给用户一个好的体验。
有一天小明来参观一个拍照微信小程序。 他很感兴趣看着精美的页面忍不住点击了拍照按钮。 然而他太兴奋了以至于点击了错误的授权选项。 他选择了“拒绝❌”选项。 接下来无论点击多少次拍照功能都无法打开。 年事已高、不懂手机权限设置的小明陷入了痛苦之中。
所以正确的处理权限是个比较重要的事情。 文章目录 1获取用户的授权设置2打开小程序的授权设置3主动拉起授权页4权限表 1获取用户的授权设置
使用 wx.getSetting 可以获取用户已经同意的授权和拒绝的授权。
wx.getSetting({success: res {if (scope) {resolve(res.authSetting[scope])} else {resolve(res.authSetting)}},fail: err {reject(err)}
})2打开小程序的授权设置
在得知用户拒绝某个权限后我们就可以调用 openSetting 帮助用户跳转到权限设置页面免去了查找的麻烦。
再回调中我们可以做一些判断判断用户是否正确的打开了相应权限。
wx.openSetting({success: res {if (res.authSetting[scope.camera]) {// 正确的打开了摄像头权限// ......} else {// 未打开摄像头权限// ......}},fail: err {// 出错}
})3主动拉起授权页
除此之外其实还有一种情况就是用户即没有同意也没有拒绝这时候就需要主动拉起授权页了。
使用authorize可以实现这个功能。
wx.authorize({scope: scope.camera,success() {// 用户已经同意小程序使用摄像头// ......},fail() {// 用户拒绝授权}
})这里还有个问题需要注意就是我们怎么判断用户是既没有同意授权也没有拒绝授权的状态
当我们使用 wx.getSetting 获取用户授权权限扽时候会有个对象比如
{scope.address: true,scope.camera: undefined, // 用户既没有同意也没有拒绝scope.invoice: true,scope.invoiceTitle: true,scope.userInfo: true,
}当其中某个值不是true也不是false即为undefined的时候就可以判断用户处于未拒绝和未同意的状态。
4权限表
具体权限表你可以访问 微信小程序权限表 进行查阅。