Skip to content

Latest commit

 

History

History
137 lines (103 loc) · 4.81 KB

File metadata and controls

137 lines (103 loc) · 4.81 KB

English Version | 中文版

CloakPluginPermission

CloakPluginPermission 是 Cloak 框架的插件之一,用于检查、请求 HarmonyOS 权限。

使用方法

前置条件

安装 Cloak 框架 @wisdomgarden/cloak

具体细节参考 @wisdomgarden/cloak

  1. 安装 CloakPluginPermission 插件

    ohpm install @wisdomgarden/cloak-plugin-permission
    npm install @wisdomgarden/cloak-plugin-permission # optional
  2. 在项目 entry/src/main/module.json5 中声明所需权限。

    官方文档

    权限列表

    示例:

    "requestPermissions": [
     // ...
     {
       "name": "ohos.permission.LOCATION",
       "reason": "$string:permission_location_reason",
       "usedScene": {
         "abilities": [
           "EntryAbility"
         ],
         "when": "inuse"
       }
     },
     // ...
    ]
  3. [选做]在项目 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."
        },
        // ...
     ]
    }
  4. 在 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
  5. 如果你使用 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

Cloak 是专为 HarmonyOS 设计的混合开发框架,类似 CordovaCapacitor,但具备 更轻量更高性能 的特性。

该框架可将 Web 应用快速转换为原生应用,同时通过插件机制访问 HarmonyOS 原生能力。


核心特性

  • 快速打包:将 H5 应用快速编译为 HarmonyOS 应用。
  • 原生能力访问:通过插件机制调用原生接口。
  • WebView 支持:提供高性能 WebView 容器,确保 H5 应用流畅运行。
  • 插件开发:支持开发者自定义插件以扩展原生功能。

更多关于 Cloak 框架信息,请查看: https://github.com/WisdomGardenInc/Cloak