hasPermission

2022-06-16 14:18 更新

hasPermission提供动态检测应用是否已取得某个或多个权限。

关于动态权限:Android系统自6.0开始,提供了同iOS系统使用体验一致的动态权限机制:对于敏感权限,如获取手机ID | IMEI,访问相册存储,定位,录音,拍照,录像等,需要在APP运行过程中动态向用户申请,用户同意后方可使用相应的功能。Android要求APP目标适配版本(targetSdkVersion)为23及以上(建议设置26及以上),为帮助您更好的使用该接口,论坛维护了一个示例;如何动态申请权限见requestPermission

权限列表中,类似contacts | contacts-r | contacts-w为权限组合,可以分别申请读写、只读取、只写入权限,如果只需要读取或者写入,则应该使用contacts-r或contacts-w,而不是contacts。

注:该方法为同步方法,方法调用后直接返回结果。

hasPermission({params})

params

list:

  • 类型:字符串数组
  • 默认值:无
  • 描述:权限列表。
  • 取值范围:

camera               //相机/拍照/录像
contacts             //联系人读取/写入
contacts-r           //仅联系人读取。iOS中等同于contacts。
contacts-w           //仅联系人写入。iOS中等同于contacts。
microphone           //使用麦克风录制音频
photos               //访问相册|本地存储空间。Android上等同于storage。
photos-w             //仅写入相册|本地存储空间。Android上等同于storage-w。
location             //定位
locationAlways       //后台定位,只支持iOS
notification         //状态栏通知
calendar             //日历读取/写入。只支持Android
calendar-r           //仅日历读取
calendar-w           //仅日历写入
phone                //直接拨打电话/获取手机号码|IMEI。只支持Android
phone-call           //仅直接拨打电话
phone-r              //仅获取手机号码|IMEI
phone-r-log          //读取通话记录
phone-w-log          //写入通话记录
sensor               //传感器.只支持Android
sms                  //读取短信/后台发送短信。只支持Android
sms-s                //仅后台发送短信
sms-r                //仅读取短信
storage              //读取/写入|相册|多媒体|本地存储空间。只支持Android
storage-r            //仅读取|相册|多媒体|文件|本地存储空间
storage-w            //仅写入|相册|多媒体|文件|本地存储空间

return

  • 类型:JSON对象数组
  • 内部字段:

[{
    name:                 //权限名,字符串类型。
    granted:              //是否允许,如果从未请求过该权限或者用户未做出过选择时将返回false,布尔类型。
    undetermined:         //是否从未请求过该权限或者用户未做出过选择,只支持iOS,注意:请求notification权限时无法获取该状态,布尔类型。
    limited:              //该字段仅photos权限有效,表示访问相册是否有限制,当受限时,应用只能获取到用户在相册选定的那部分资源,只支持iOS 14及以上系统,布尔类型。
    reducedAccuracy:      //该字段仅location、locationAlways有效,返回当前是否为模糊定位,只支持iOS 14及以上系统,布尔类型。在iOS 14以上系统中,用户可以选择只对应用授权模糊定位,如果应用对定位精度要求高,则可以在判断为模糊定位后请求locationFullAccuracy权限,系统将弹出开启精准定位弹框,用户可以再次进行选择。
}]

示例代码

var resultList = api.hasPermission({
    list:['camera']
});
var granted = resultList[0].granted;
api.alert({
    msg: granted?'有权限':'无权限'
});

可用性

iOS系统,Android系统

可提供的1.2.76及更高版本

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号