微信小程序开发设置获取权限管理,摄像头权限,位置权限,用户信息权限等

在小程序开发的时候,我们总会遇到很多权限问题,比如摄像头权限,位置权限,用户信息权限等,如果不加以判断,很难给用户一个好的体验。

有一天,小明来参观一个拍照微信小程序。 他很感兴趣,看着精美的页面,忍不住点击了拍照按钮。 然而,他太兴奋了,以至于点击了错误的授权选项。 他选择了“拒绝❌”选项。 接下来无论点击多少次,拍照功能都无法打开。 年事已高、不懂手机权限设置的小明陷入了痛苦之中。

所以,正确的处理权限是个比较重要的事情。

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:权限表

具体权限表你可以访问 微信小程序权限表 进行查阅。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一拖再拖 一拖再拖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值