权限申请
HarmonyOS权限申请详解:requestPermissionsFromUser。
1. 声明权限
// module.json5
{
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
},
{
"name": "ohos.permission.CAMERA",
"reason": "$string:camera_reason",
"usedScene": {
"abilities": ["EntryAbility"],
"when": "inuse"
}
}
]
}
2. 运行时申请
import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
async function requestCameraPermission() {
const atManager = abilityAccessCtrl.createAtManager();
try {
const result = await atManager.requestPermissionsFromUser(getContext(this), [
'ohos.permission.CAMERA',
]);
if (result.authResults[0] === 0) {
console.log('权限已授予');
} else {
console.log('权限被拒绝');
}
} catch (err) {
console.error('申请权限失败:', err);
}
}
3. 权限类型
| 类型 | 示例 | 授权方式 |
|---|---|---|
| normal | INTERNET | 安装时自动授予 |
| system_basic | CAMERA | 运行时弹窗 |
| system_core | MANAGE_USERS | 仅系统应用 |