API 兼容性:
QRN:v3.5.0
iOS:80011158
Android:60001219
目前只有检测和打开系统通知权限的功能,以后会陆续添加其他权限。
import { QPermission } from 'qunar-react-native';
type
是权限的类型,当前支持通知权限(notification)。
successCallback
是成功回调,返回结果有以下两种情况:
未开启权限:
已开启权限:
errorCallback
是失败回调,返回值结构为:
QPermission.checkPermission(
{
type: 'notification'
},
(data) => {
alert(JSON.stringify(data));
},
(err) => {
alert(JSON.stringify(err));
}
);
批量检测系统权限 v5.4.1 以上支持
permissions
要检查的权限列表
"photo" //读取相册权限
"camera" //拍照摄像权限
"microphone" //麦克风权限
"location" //地理位置
"push" //通知权限
"contacts" //联系人权限
"read_calender" //读取日历
"write_calender" //写日历
"read_external_storage" //读取外部存储,最高支持版本到32(Android12),Android13以上框架转为"read_media_image"图片权限
"write_external_storage" //写入外部存储,最高支持版本到32(Android12),Android13以上框架转为"read_media_image"图片权限
"read_phone_state" //读取手机状态信息
"write_settings" //修改系统内容设置
"system_alert_window" //悬浮窗权限
"send_sms" //发短信权限
"call_phone" //拨打电话权限
"account_manager " //账户权限
"photo" //读取相册权限
"camera" //拍照摄像权限
"microphone" //麦克风权限
"location" //地理位置
"push" //通知权限
"contacts" //联系人权限
"read_calender" //读取日历, 兼容android,实际不区分读写
"write_calender" //写日历, 兼容android,实际不区分读写
"idfa" // 查询idfa权限
successCallback
是成功回调, 返回结构:
{
"read_calender":{
"state":false
},
"location":{
"state":true,
"stateDesc":0 // 此处0、1、2分别表示:LocationUnknownAccuracy = 0, // 未知精度 LocationReducedAccuracy = 1, // 模糊定位 LocationFullAccuracy = 2, //精准定位
},
"photo":{
"state":true,
"stateDesc": 'all', // 取值 all / user_selected / none 分别表示 全部相册权限 / 部分相册权限 / 无相册权限 (adr 60001580 ios 80011321 新增)
},
...
}
errorCallback
是失败回调
QPermission.checkPermissions(
[
'photo', //读取相册权限
'camera', //拍照摄像权限
'microphone', //麦克风权限
'location', //地理位置
'push', //通知权限
'contacts', //联系人权限
'read_calender', //读取日历
'write_calender', //写日历
'read_external_storage', //读取外部存储
'write_external_storage', //写入外部存储
'read_phone_state', //读取手机状态信息
'write_settings', //修改系统内容设置
'system_alert_window', //悬浮窗权限
'send_sms', //发短信权限
'call_phone', //拨打电话权限
'account_manager ' //账户权限
],
(data) => {
alert(JSON.stringify(data));
},
(err) => {
alert(JSON.stringify(err));
}
);
跳转系统权限页 v5.4.1 以上支持
successCallback
是成功回调
errorCallback
是失败回调
QPermission.jumpAppSettings(
(data) => {
alert(JSON.stringify(data));
},
(err) => {
alert(JSON.stringify(err));
}
);
type
是权限的类型,当前支持通知权限(notification)。
isShowDialog
跳转通知权限设置页面时是否显示默认对话框,默认为 true。
title
是询问是否打开 系统权限设置页面 对话框 的标题。
message
是询问是否打开 系统权限设置页面 对话框 的提示内容。
successCallback
是成功回调,返回值结构:
errorCallback
是失败回调,返回结果有以下三种情况:
{ msg: '权限已经存在,不需要设置', code: '20001', ret: false }
{ msg: '参数错误', code: '10004', ret: false }
{ msg: '用户取消', code: '20002', ret: false }
QPermission.openPrefs(
{
type: 'notification',
title: '请求使用通知服务',
message: '关闭通知后,您将无法收到相关的通知。代开推送通知有助于我们为您更好得提供服务'
},
(data) => {
alert(JSON.stringify(data));
},
(err) => {
alert(JSON.stringify(err));
}
);
回参:
ret:结果说明
code:状态码
msg:结果描述
入参:
type:验证权限的类型(notification:通知 type,后续可扩展多种)
isShowDialog:跳转通知权限设置页面时是否显示默认对话框,默认为 true。
title:提示的标题
message:提示文案