hasPermission
关于动态权限:Android系统自6.0开始,提供了同IOS系统使用体验一致的动态权限机制:对于敏感权限,如获取手机ID | IMEI,访问相册存储,定位,录音,拍照,录像等,需要在APP运行过程中动态向用户申请,用户同意后方可使用相应的功能。
hasPermission提供动态检测应用是否已取得某个或多个权限;Android要求APP目标适配版本(targetSdkVersion)为23及以上(建议设置26及以上),为帮助您更好的使用该接口,论坛维护了一个示例;如何动态申请权限见requestPermission。
注:该方法为同步方法,方法调用后直接返回结果。
权限列表中,类似contacts | contacts-r | contacts-w为权限组合,是为通配Android和IOS系统差异而设计:IOS系统无权限组的概念,向系统申请contacts权限时,系统会同时授予读取和写入权限;而Android则区分了读取和写入操作,可分别进行申请。因此建议在开发过程中,一般传入组合即可同时适配两个平台。如果Android上有特殊需求,例如仅需要读取联系人而不需要写入联系人权限,则应该使用contacts-r而不是contacts或contacts-w。无论contacts-r还是contacts-w,在IOS上均被识别为contacts。
hasPermission({params})
params
list:
- 类型:字符串数组
- 默认值:无
- 描述:权限列表。
- 取值范围:
camera //相机/拍照/录像
contacts //联系人读取/写入
contacts-r //仅联系人读取
contacts-w //仅联系人写入
microphone //使用麦克风录制音频
photos //访问相册|本地存储空间。Android上等同storage权限
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权限时无法获取该状态,布尔类型
}]
示例代码
var resultList = api.hasPermission({
list:['camera','contacts']
});
api.alert({
msg:JSON.stringify(resultList)
});
可用性
iOS系统,Android系统
可提供的1.2.76及更高版本