Harmony OS 应用权限管控

应用权限是软件用来访问系统资源和使用系统能力的一种通行方式。在涉及用户隐私相关功能和数据的场景,例如:访问个人设备的硬件特性,如摄像头、麦克风,以及读写媒体文件等,OpenHarmony通过应用权限管理组件来保护这些数据以及能力。

在系统应用开发过程中,如果应用要使用敏感权限,开发者可以调用应用权限管理组件接口检查待访问权限是否被授权,如果未授权,操作不允许。

  • 应用(包括应用引用的三方库)所需权限必须在应用的配置文件中严格按照权限开发指导逐个声明。参考声明权限
  • 权限申请满足最小化原则,禁止申请非必要的、已废弃的权限。应用申请过多权限,会引起用户对应用安全性的担忧以及使用体验变差,从而也会影响到应用的安装率和留存率。
  • 应用申请敏感权限时,必须填写权限使用理由字段,敏感权限通常是指与用户隐私密切相关的权限,包括地理位置、相机、麦克风、日历、健身运动、身体传感器、音乐、文件、图片视频等权限。参考向用户申请授权
  • 应用敏感权限须在对应业务功能执行前动态申请,满足隐私最小化要求。
  • 用户拒绝授予某个权限后,应用与此权限无关的其他业务功能应允许正常使用。

授权方式

  • system_grant(系统授权)

    • 需要在安装包中申请system_grant权限,那么系统会在用户安装应用时,自动把相应权限授予给应用。
    • 应用被允许访问的数据不会涉及到用户或设备的敏感信息
  • user_grant(用户授权)
    • 会弹出窗口询问用户的意见-应用被允许访问的数据将会涉及到用户或设备的敏感信息

APL等级(元能力权限等级):

ACL访问控制列表:

  • 权限等级应用APL等级是一一对应的。原则上,拥有低APL等级的应用默认无法申请更高等级的权限。访问控制列表ACL(Access Control List)提供了解决低等级应用访问高等级权限问题的特殊渠道
  • 系统权限均定义了“ACL使能”字段,当该权限的ACL使能为TRUE,应用可以使用ACL方式跨级别申请该权限。具体单个权限的定义,可参考应用权限列表

应用申请权限流程图:

  •       Noraml 等级的应用申请权限
  •     System_basic等级的应用申请权限

申请权限:

{
  "module" : {
    // ...
    "requestPermissions":[
      {
        "name" : "ohos.permission.PERMISSION1",
        "reason": "$string:reason",
        "usedScene": {
          "abilities": [
            "FormAbility"
          ],
          "when":"inuse"
        }
      },
      {
        "name" : "ohos.permission.PERMISSION2",
        "reason": "$string:reason",
        "usedScene": {
          "abilities": [
            "FormAbility"
          ],
          "when":"always"
        }
      }
    ]
  }
}

 Ps:每个权限的字段reason(申请权限的原因)必填 :(简洁的概述你要权限的理由) https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/security/AccessToken/declare-permissions.md#%E6%9D%83%E9%99%90%E4%BD%BF%E7%94%A8%E7%90%86%E7%94%B1%E7%9A%84%E6%96%87%E6%A1%88%E5%86%85%E5%AE%B9%E8%A7%84%E8%8C%83icon-default.png?t=N7T8https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/security/AccessToken/declare-permissions.md#%E6%9D%83%E9%99%90%E4%BD%BF%E7%94%A8%E7%90%86%E7%94%B1%E7%9A%84%E6%96%87%E6%A1%88%E5%86%85%E5%AE%B9%E8%A7%84%E8%8C%83

<think>嗯,用户问的是鸿蒙星河版中有没有Web组件。首先,我需要确认鸿蒙星河版指的是哪个版本。鸿蒙系统现在有多个版本,比如HarmonyOS 2、3,还有最新的HarmonyOS Next。而“星河版”可能是指HarmonyOS Next的别称,因为之前华为提到过鸿蒙星河版,可能属于更先进的版本,比如面向开发者的预览版。 接下来,Web组件通常指的是系统内置的浏览器引擎,比如Android里的WebView,用于在应用中显示网页内容。在鸿蒙系统中,是否有类似的组件呢?根据之前的知识,HarmonyOS确实提供了Web组件,用于嵌入网页。例如,HarmonyOS 3的ArkUI框架里有Web组件,允许开发者创建WebView来加载网页。 但问题在于用户提到的“星河版”是否属于HarmonyOS Next。根据华为的发布信息,HarmonyOS Next是彻底脱离安卓的新版本,可能对原有组件有所调整。需要查证官方文档是否有更新。假设星河版就是HarmonyOS Next,那么是否保留了Web组件? 查找鸿蒙开发者文档,发现HarmonyOS Next的ArkUI中仍然支持Web组件,但可能需要使用新的API或进行适配。例如,使用`Web`组件加载网页的基本方法可能类似,但需要确认是否有兼容性变化。此外,可能需要特定的权限声明,比如网络访问权限。 另外,用户可能想知道如何在实际开发中使用这个Web组件,是否需要示例代码。比如,在ArkUI的声明式开发范式中,通过`Web`组件创建并加载URL。同时,需要注意鸿蒙的Web组件是否支持JavaScript交互、缓存控制等高级功能,这些也是开发者关心的点。 还需要考虑用户可能的背景,可能是开发者想要开发鸿蒙应用,需要确认Web支持情况。因此,回答中需要明确说明存在Web组件,并提供基本用法示例,同时指出版本差异和注意事项,确保信息的准确性和实用性。</think>在鸿蒙星河版(HarmonyOS Next)中,**确实存在Web组件**,它属于ArkUI框架的核心能力之一。以下是关键信息梳理: --- ### 一、Web组件的作用 - **网页嵌入**:用于在鸿蒙应用中内嵌网页内容,类似Android的WebView。 - **交互能力**:支持网页与原生应用的JavaScript交互、页面跳转控制等。 - **基础功能**:加载在线/离线网页、Cookie管理、缓存控制等。 --- ### 二、技术实现 #### 1. 声明式开发范式(推荐) 在`.ets`文件中通过`Web`组件直接嵌入: ```typescript @Entry @Component struct WebPage { controller: WebController = new WebController(); build() { Column() { Web({ controller: this.controller, src: "https://example.com", fileAccess: true }) .onPageEnd(event => { console.log("Page loaded: " + event.url); }) } } } ``` #### 2. 权限配置 需在`module.json5`中声明网络权限: ```json "requestPermissions": [ { "name": "ohos.permission.INTERNET" } ] ``` --- ### 三、版本适配说明 | 特性 | HarmonyOS 3.x | 鸿蒙星河版 (Next) | 注意事项 | |---------------------|---------------|------------------|----------------------------| | Web组件基础加载 | ✔️ | ✔️ | API名称未变,语法需适配ArkTS | | JavaScript互操作性 | ✔️ | ✔️ | 需通过`WebController`调用方法 | | 离线网页加载 | ✔️ | ✔️ | 需使用`file:///`协议 | | 多实例并发 | ❌ | ✔️ | Next版支持多Web组件同时运行 | --- ### 四、开发者建议 1. **兼容性验证**:Next版对Web内核进行了优化,建议测试网页渲染效果。 2. **安全策略**:通过`WebSecurityControl`接口管控跨域访问等安全行为。 3. **性能优化**:可启用`domStorageAccess`和`imageAccess`提升加载速度。 --- ### 五、官方资源 - [鸿蒙Web组件开发文档](https://developer.harmonyos.com/cn/docs/documentation/doc-references/ts-basic-components-web-0000001118351192) - [JavaScript交互示例代码](https://gitee.com/harmonyos/codelabs/tree/master/Web/WebToAppInteraction) 如需进一步探讨具体实现细节,可提供您的使用场景,我会针对性补充技术要点。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值