微信小程序中调用wx.getSetting可以获取到哪些权限设置


关键词

微信 小程序 权限

摘要

本文介绍微信小程序自带的wx.getSetting()方法,看看它可以获取哪些权限设置。如果这些权限设置是已同意、未设置、已拒绝,那我们又该如何处理呢?

微信官方是这样讲的:wx.getSetting(Object object)可获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。

说白了,它不会把所有的权限全部列出来,而只是记录一下之前哪些权限授权过,哪些权限拒绝过。那些既没授权也没有拒绝的权限呢,当然,就不出来在列表中了。

看看下面这个例子:

wx.getSetting({
  success (res) {
    console.log(res.authSetting)
    // res.authSetting = {
    //   "scope.userInfo": true,
    //   "scope.userLocation": true
    // }
  }
})

从这上面,我们可以看到两个权限“scope.userInfo”和“scope.userLocation”,前者表示是授权获得用户信息(包含头像、昵称、性别、省市等),后者是获取用户当前位置。目前最常用的也就是这两个权限了。

然后,我们来看一下它们的取值,从例子可以看出,这是一个bool类型,就是说有true、false两个值。那么,对于一个权限我们是不是就只有两个判断了呢,不是的。还有一种是undefined,就是指这里面没该项。

下面来看看对于权限设置的不同状态,该怎么进行处理呢?

wx.getSetting({
    success (res) {
        if (res.authSetting['scope.userInfo'] == false) { //已拒绝
            //如果之前用户拒绝了,这时要调用wx.openSetting()方法,给用户再选择一次的机会
        }elseif( res.authSetting['scope.userInfo'] == undefined ){ //未设置
            //在未设置的情况下,可以调用业务函数(如wx.getUserInfo,或wx.getLocation),系统会自动提示用户同意
        }elseif( res.authSetting['scope.userInfo'] == true ){ //已授权
            //如果是已授权的情况下,直接调用业务函数,系统不会再提示用户
        }
    }
})

好了,关于微信小程序中调用wx.getSetting可以获取到哪些权限设置,并且在各种权限设置下如何调用业务功能,本文就介绍到这里,希望对大家有所帮助。

补充,通过查询微信小程序官方文档,找到一个AuthSetting对象,它有如下属性:

boolean scope.userInfo
是否授权用户信息
对应接口->wx.getUserInfo

boolean scope.userLocation
是否授权地理位置
对应接口->wx.getLocation

boolean scope.werun
是否授权微信运动步数
对应接口->wx.getWeRunData

boolean scope.writePhotosAlbum
是否授权保存到相册
对应接口->wx.saveImageToPhotosAlbum

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:115085382!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« 微信小程序和公众号会员数据打通的设计思路