upPermissionModule 权限模块
模块概述
权限模块为 H5 页面提供对获取不同系统权限如定位权限,录音权限等的申请。
方法列表
- requestPermission(老版申请App的指定权限,该方法不再建议使用,请尽快升级requestPermissionV2)
- requestPermissionV2(新版申请App的指定权限,等待用户设置权限回调后返回结果)
- queryPermission(查询App的指定权限 )
- querySystemPermission(查询指定系统功能是否开启)
- openSystemPermission(打开指定系统功能的开关)
公共数据
- 所有数据均以 JSON 结构返回,由代码,信息和数据三部分组成
失败结果{ "retCode": "000000", //接口状态标识码 "retInfo": "执行成功",//接口信息说明 "retData": null //业务数据 }
{ "retCode": "000001", //接口状态标识码 "retInfo": "非法参数错误(打印入参)或模块返回的其他错误信息",//接口信息说明 "retData": null //业务数据 }
其他见具体定义:返回数据通用
模块变更记录
- V3.2.0
- 新增模块upPermissionModule
- V3.6.0
-新增方法
- querySystemPermission(查询指定系统功能是否开启) - openSystemPermission(打开指定系统功能的开关)
- V4.0.1
- 新增方法requestPermissionV2
方法说明
requestPermission(老版申请App的指定权限)
requestPermission({params})
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0及以上 |
params 输入参数:
属性名 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
permissions | Array[String] | 是 | 需要申请的权限标识集合:具体支持的权限标识: location - 定位; camera - 拍照/录像/相机 storage - 本地存储 microphone - 麦克风 bluetooth - 蓝牙 |
错误返回 retCode说明:
按照通用
正确返回 retData说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retData | Array[Object] | 权限查询结果列表,数组中每个结果说明如下 |
属性名 | 数据类型 | 说明 |
---|---|---|
name | String | 权限标识 |
granted | Boolean | 权限是否赋予: true: 有权限;false:无权限 |
示例
调用方式
uplusapi.upPermissionModule.requestPermission({permissions:['location']}).then(
(result) =>console.log('result',result),
(error) =>console.log('error',error)
);
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数requestPermissionOldForPlugin成功",
"retData": [
{
"name": "location",
"granted": false
}
]
}
requestPermissionV2(新版申请App的指定权限)
requestPermissionV2({params})
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0及以上 |
params 输入参数:
属性名 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
permissions | Array[String] | 是 | 需要申请的权限标识集合:具体支持的权限标识: location - 定位; camera - 拍照/录像/相机 storage - 本地存储 microphone - 麦克风 bluetooth - 蓝牙 |
错误返回 retCode说明:
按照通用
正确返回 retData说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retData | Array[Object] | 权限查询结果列表,数组中每个结果说明如下 |
属性名 | 数据类型 | 说明 |
---|---|---|
name | String | 权限标识 |
granted | Boolean | 权限是否赋予: true: 有权限;false:无权限 |
示例
调用方式
uplusapi.upPermissionModule.requestPermissionV2({permissions:['location']}).then(
(result) =>console.log('result',result),
(error) =>console.log('error',error)
);
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数requestPermissionForPlugin成功",
"retData": [
{
"name": "location",
"granted": false
}
]
}
queryPermission(查询App的指定权限)
queryPermission({params})
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0及以上 |
params 输入参数:
属性名 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
permissions | Array[String] | 是 | 需要申请的权限标识集合:具体支持的权限标识: location - 定位; camera - 拍照/录像/相机 storage - 本地存储 microphone - 麦克风 bluetooth - 蓝牙 |
错误返回 retCode说明:
按照通用
正确返回 retData说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retData | Array[Object] | 权限查询结果列表,数组中每个结果说明如下 |
属性名 | 数据类型 | 说明 |
---|---|---|
name | String | 权限标识 |
granted | Boolean | 权限是否赋予: true: 有权限;false:无权限 |
示例
调用方式
uplusapi.upPermissionModule.queryPermission({
permissions: ['camera','storage']
}).then(res => console.log(res)).catch(err => console.log(err));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数queryPermissionForPlugin成功",
"retData": [
{
"name": "location",
"granted": false
},
{
"name":"storage",
"granted":false
}
]
}
querySystemPermission(查询指定系统功能是否开启)
querySystemPermission({params}) 说明:iOS系统在使用该接口前,请先调用queryPermission方法以确保App获取到相应的权限授权。 如果App未授权调用该方法,肯能会因为未授权的原因导致返回结果出现不准确。
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0及以上 |
params 输入参数:
属性名 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
permissions | Array[String] | 是 | 需要查询的权限/开关标识集合:具体支持的权限标识: iOS: bluetooth - 蓝牙,location - 定位; Android: bluetooth - 蓝牙,location - 定位,wifi - 无线网络; |
错误返回 retCode说明:
按照通用
正确返回 retData说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retData | Array[Object] | 权限查询结果列表,数组中每个结果说明如下 |
属性名 | 数据类型 | 说明 |
---|---|---|
name | String | 权限标识 |
granted | Boolean | 权限是否赋予: true: 有权限;false:无权限 |
示例
调用方式
uplusapi.upPermissionModule.querySystemPermission({
permissions: ['bluetooth']
}).then(res => console.log(res)).catch(err => console.log(err));
获取成功返回结果
{
"retData": [
{
"name": "bluetooth",
"granted": false
}
],
"retCode": "000000",
"retInfo": "调用函数querySystemPermissionForPlugin成功"
}
openSystemPermission(打开指定系统功能的开关)
openSystemPermission({params}) 说明:如果系统权限已打开,则直接返回成功。如果权限未打开:安卓:弹出开启权限弹框或者跳转到设置页。 iOS:如果控制中心蓝牙未打开,提示:‘海尔智家’,想要使用蓝牙进行新连接,您可以在‘设置’中允许新连接。点击设置, 跳转到设置中的蓝牙开关页,点击‘允许新连接’可以开启蓝牙。如果设置中的蓝牙开关未打开:提示:打开蓝牙允许‘海尔智家’连接配件。 点击设置,跳转到设置中的蓝牙开关页,点击开关开启蓝牙。
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0及以上 |
params 输入参数:
属性名 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
permission | String | 是 | 需要查询的权限/开关标识:具体支持的权限标识: bluetooth - 蓝牙; |
错误返回 retCode说明:
按照通用
正确返回 retData说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retData | Boolean | 权限查询结果 |
示例
调用方式
uplusapi.upPermissionModule.openSystemPermission({
permission: 'bluetooth'
}).then(res => console.log(res)).catch(err => console.log(err));
获取成功返回结果
{
"retData": false,
"retCode": "000000",
"retInfo": "调用函数openSystemPermissionForPlugin成功"
}