当前位置: 首页 > news >正文

鸿蒙应用Stage模型【应用/组件级配置】

应用/组件级配置

在开发应用时,需要配置应用的一些标签,例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。

应用包名配置

应用需要在工程的AppScope目录下的[app.json5配置文件]中配置bundleName标签,该标签用于标识应用的唯一性。推荐采用反域名形式命名(如com.example.demo,建议第一级为域名后缀com,第二级为厂商/个人名,第三级为应用名,也可以多级)。

图标和标签配置

图标和标签通常一起配置,可以分为应用图标、应用标签和入口图标、入口标签,分别对应[app.json5配置文件]和[module.json5配置文件]中的icon和label标签。

应用图标和标签通常用于标识整个应用,可以在标识应用的界面使用该类型图标和标签。比如:

  • 设置应用中,需要展示应用列表时
  • 在隐私管理中,需要展示应用申请的权限时
  • 在状态栏显示通知消息时
  • 开发前请熟悉鸿蒙开发指导文档gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

入口图标和标签是应用安装完成后可以在设备桌面上显示出来的,如下图所示。入口图标是以[UIAbility]为粒度,支持同一个应用存在多个入口图标和入口标签,点击后进入对应的UIAbility界面。比如:

  • 桌面上需要显示图标时
  • 最近任务列表中显示时

图1 图标和标签

application-component-configuration-stage

应用图标和标签配置

应用图标需要在工程的AppScope目录下的[app.json5配置文件]中配置icon标签。应用图标需配置为图片的资源索引,配置完成后,该图片即为应用的图标。

应用标签需要在工程的AppScope模块下的[app.json5配置文件]中配置label标签。标识应用对用户显示的名称,需要配置为字符串资源的索引。

{"app": {"icon": "$media:app_icon","label": "$string:app_name"...}
}

入口图标和标签配置

入口图标和标签配置方式

Stage模型支持对组件配置入口图标和入口标签。入口图标和入口标签会显示在桌面上。

入口图标需要在[module.json5配置文件]中配置,在abilities标签下面有icon标签。例如希望在桌面上显示该UIAbility的图标,则需要在skills标签下面的entities中添加"entity.system.home"、actions中添加"ohos.want.action.home"。同一个应用有多个UIAbility配置上述字段时,桌面上会显示出多个图标,分别对应各自的UIAbility。

{"module": {..."abilities": [{"icon": "$media:icon","label": "$string:EntryAbility_label","skills": [{"entities": ["entity.system.home"],"actions": ["ohos.want.action.home"]}],}]}
}
入口图标和标签管控规则

系统对无图标应用实施严格管控,防止一些恶意应用故意配置无入口图标,导致用户找不到软件所在的位置,无法操作卸载应用,在一定程度上保证用户终端设备的安全。

如果应用确需隐藏入口图标,需要配置AllowAppDesktopIconHide应用特权,具体配置方式参考[应用特权配置指南]。详细的入口图标及入口标签的显示规则如下。

  • HAP中包含UIAbility

    • 在module.json5配置文件的abilities标签中设置了入口图标

      • 该应用没有隐藏图标的特权

        • 系统将使用该UIAbility配置的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到该UIAbility首页。
        • 系统将使用该UIAbility配置的label作为入口标签,并显示在桌面上,如果没有配置label,系统将使用app.json5中的label作为入口标签,并显示在桌面上。
      • 该应用具有隐藏图标的特权

        • 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。
    • 在module.json5配置文件的abilities标签中未设置入口图标

      • 该应用没有隐藏图标的特权

        • 系统将使用app.json5中的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到应用管理中对应的应用详情页面,如下图所示。
        • 系统将使用app.json5中的label作为入口标签,并显示在桌面上。
      • 该应用具有隐藏图标的特权

        • 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。
  • HAP中不包含UIAbility

    • 该应用没有隐藏图标的特权

      • 系统将使用app.json5中的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到应用管理中对应的应用详情页面,如下图所示。
      • 系统将使用app.json5中的label作为入口标签,并显示在桌面上。
    • 该应用具有隐藏图标的特权

      • 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。
      • HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿

鸿蒙文档.png
图2 应用的详情页示意图

应用的详情页例图

应用版本声明配置

应用版本声明需要在工程的AppScope目录下的[app.json5配置文件]中配置versionCode标签和versionName标签。versionCode用于标识应用的版本号,该标签值为32位非负整数。此数字仅用于确定某个版本是否比另一个版本更新,数值越大表示版本越高。versionName标签标识版本号的文字描述。

Module支持的设备类型配置

Module支持的设备类型需要在[module.json5配置文件]中配置[deviceTypes标签],如果deviceTypes标签中添加了某种设备,则表明当前的Module支持在该设备上运行。

Module权限配置

Module访问系统或其他应用受保护部分所需的权限信息需要在[module.json5配置文件]中配置[requestPermissions标签]。该标签用于声明需要申请权限的名称、申请权限的原因以及权限使用的场景。

http://www.lryc.cn/news/358573.html

相关文章:

  • Python魔法之旅-魔法方法(05)
  • 机器学习笔记(1):sklearn是个啥?
  • C++与C语言 通过指针改变const变量的值
  • OpenJDK优化技术之标量替换(Scalar Replacement)
  • 优思学院|研发工程师获取六西格玛证书有用吗?
  • C++第二十二弹---vector深度剖析及模拟实现(下)
  • GD32F470+lwip 丢包问题分析及解决
  • 好用的电子杂志制作平台分享
  • “云原生安全:构建弹性且安全的云上环境的关键要素“
  • 燃气安全阀检验维修:守护家庭安全的必备知识
  • 【JavaEE】多线程(1)
  • 相对位姿估计
  • 记一次 .NET某工业设计软件 崩溃分析
  • 2020 6.s081——Lab5:Lazy page allocation
  • 华为认证学习笔记:生成树
  • leetcode 97.交错字符串
  • The Missing Semester ( Shell 工具和脚本 和 Vim)
  • 【Uniapp微信小程序】自定义水印相机、微信小程序地点打卡相机
  • SimPO: Simple Preference Optimization with a Reference-Free Reward
  • CDH6.3.2安装文档
  • Java实战入门:深入解析Java中的 `Arrays.sort()` 方法
  • JavaScript的垃圾回收机制
  • 小程序使用Canvas设置文字竖向排列
  • GPT-4o:重塑人机交互的未来
  • 大语言模型拆解——Tokenizer
  • Linux自动挂载服务autofs讲解
  • 堆结构知识点复习——玩转堆结构
  • JS数据类型运算符标准库
  • 单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.13数组
  • 【码银送书第二十期】《游戏运营与出海实战:策略、方法与技巧》