CloakPluginPermission 是 Cloak 框架的插件之一,用于检查、请求 HarmonyOS 权限。
前置条件
安装 Cloak 框架
@wisdomgarden/cloak
具体细节参考 @wisdomgarden/cloak
-
安装 CloakPluginPermission 插件
ohpm install @wisdomgarden/cloak-plugin-permission npm install @wisdomgarden/cloak-plugin-permission # optional
-
在项目
entry/src/main/module.json5
中声明所需权限。示例:
"requestPermissions": [ // ... { "name": "ohos.permission.LOCATION", "reason": "$string:permission_location_reason", "usedScene": { "abilities": [ "EntryAbility" ], "when": "inuse" } }, // ... ]
-
[选做]在项目
entry/src/main/resources/base/element/string.json
中添加/覆盖权限请求说明国际化文件。 Cloak 已经内置了部分权限请求说明国际化文件。示例:
{ "string": [ // ... { "name": "permission_location_reason", "value": "We need access to your location to offer personalized attendance services, making it easier for you to check in wherever you are." }, // ... ] }
-
在 H5 逻辑代码中就可以直接调用
示例:
const queryResult = await Cloak.plugins.Permission.query(['ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.CAMERA','ohos.permission.MICROPHONE']) alert(JSON.stringify(queryResult, null, 2)); // return { "ohos.permission.APPROXIMATELY_LOCATION": -1, "ohos.permission.CAMERA": -1, "ohos.permission.LOCATION": -1, "ohos.permission.MICROPHONE": -1 } const requestResult = await Cloak.plugins.Permission.request(['ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.CAMERA','ohos.permission.MICROPHONE']) alert(JSON.stringify(requestResult, null, 2)); // return { "ohos.permission.APPROXIMATELY_LOCATION": 0, "ohos.permission.CAMERA": 0, "ohos.permission.LOCATION": 0, "ohos.permission.MICROPHONE": 0 } // enum GrantStatus { // PERMISSION_DENIED = -1, // PERMISSION_GRANTED = 0 // } // 全局开关 https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-abilityaccessctrl-V5#switchtype12 const result = await Cloak.plugins.Permission.requestGlobalSwitch(2) // return true/false // 推送权限接口 queryNotificationPermission: () => Promise<boolean>; // return true/false requestNotificationPermission: () => Promise<boolean>; // return true/false
-
如果你使用 Typescript 或者想在前端扩展插件,安装 NPM 包
npm install @wisdomgarden/cloak-plugin-permission
提供
queryLikeCapacitor
,requestLikeCapacitor
方法类似 Capacitor 输入和输出,具体见index.d.ts// name: camera,geolocation,microphone,notifications queryLikeCapacitor: (payload: { name: string }) => Promise<CapacitorPermissionResult>; requestLikeCapacitor: (payload: { name: string }) => Promise<CapacitorPermissionResult>;
Cloak 是专为 HarmonyOS 设计的混合开发框架,类似 Cordova 和 Capacitor,但具备 更轻量、更高性能 的特性。
该框架可将 Web 应用快速转换为原生应用,同时通过插件机制访问 HarmonyOS 原生能力。
- 快速打包:将 H5 应用快速编译为 HarmonyOS 应用。
- 原生能力访问:通过插件机制调用原生接口。
- WebView 支持:提供高性能 WebView 容器,确保 H5 应用流畅运行。
- 插件开发:支持开发者自定义插件以扩展原生功能。
更多关于 Cloak 框架信息,请查看: https://github.com/WisdomGardenInc/Cloak