HarmonyOS NEXT鸿蒙开发:module.json5-UIAbility组件、启动模式、abilities标签、桌面应用图标、桌面应用名

介绍

官网指南

为使应用能够正常使用 UIAbility,需要在 module.json5 配置文件的 abilities 标签中声明 UIAbility 的名称、入口、标签等相关信息。

配置文件例子

{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone"
    ],
    "deliveryWithInstall": true,
    "installationFree": false,
    "pages": "$profile:main_pages",
    "abilities": [
        .....
    ],
    "extensionAbilities": [
        ......
    ]
    .....
  }
}

module标签

子标签解释

name

标识当前Module的名称,确保该名称在整个应用中唯一。命名规则如下 :

  • 由字母、数字和下划线组成,且必须以字母开头。

  • 最大长度31字节。

type

标识当前Module的类型。支持的取值如下:

  • entry:应用的主模块。

  • feature:应用的动态特性模块。

  • har:静态共享包模块。

  • shared:动态共享包模块。

description

标识当前Module的描述信息

mainElement

标识当前Module的入口UIAbility名称或者ExtensionAbility名称

deviceTypes

标识当前Module可以运行在哪类设备上。

  • 手机:phone
  • 平板:tablet
  • 2in1设备:2in1,融合了屏幕触控和键鼠操作的二合一设备。
  • 智慧屏:tv
  • 智能手表:wearable 系统能力较丰富的手表,具备电话功能。
  • 车机:car

deliveryWithInstall

标识当前Module是否在用户主动安装的时候安装,即该Module对应的HAP是否跟随应用一起安装。

  • true:主动安装时安装。

  • false:主动安装时不安装。

installationFree

标识当前Module是否支持免安装特性。

  • true:表示支持免安装特性,且符合免安装约束。

  • false:表示不支持免安装特性。

说明:

当 bundleType 为 元服务 时,该字段需要配置为true。反之,该字段需要配置为 false。

pages

标识当前Module的profile资源,用于列举每个页面信息

该标签是一个profile文件资源,指下面文件:

src/main/resources/base/profile/main_pages.json

解释详见链接

abilities标签

官网指南

abilities标签描述UIAbility组件的配置信息,标签值为数组类型,该标签下的配置只对当前UIAbility生效。

子标签说明

name

标识当前UIAbility组件的名称,确保该名称在整个应用中唯一

srcEntry

标识入口UIAbility的代码路径

launchType

标识当前UIAbility组件的 启动模式,该标签缺省为 singleton,支持的取值如下:

  • multiton:多实例模式,每次启动创建一个新实例。

  • singleton:单实例模式,仅第一次启动创建新实例。

  • specified:指定实例模式,运行时由开发者决定是否创建新实例。(例如:word,每次 新建文档 时,就新打开一个word程序;多次打开同一个文档,就只打开一个word程序)

  • standard:multiton的曾用名,效果与多实例模式一致。

description

标识当前UIAbility组件的描述信息

icon

标识当前UIAbility组件的图标,取值为图标资源文件的索引。

如果UIAbility被配置为 MainElement,该标签必须配置。

桌面图标

该配置指定桌面图标

注意:改名字后,需要卸载应用,再安装才能看到新名字

任务图标

该配置指定任务视图中的 任务图标,如下图红框处:

label

标识当前UIAbility组件对用户显示的名称,要求采用该名称的资源索引,以支持 多语言

如果UIAbility被配置为MainElement,该标签必须配置。

桌面应用名字

该配置指定桌面图标的名字

注意:改名字后,需要卸载应用,再安装才能看到新名字

如下图:

任务名字

该配置指定任务视图中的 任务名字,如下图红框处:

文件路径

该配置与语言相关,具体如下:

中文指下面文件:

src/main/resources/zh_CN/element/string.json

英文指下面文件:

src/main/resources/en_US/element/string.json

未匹配语言指下面文件:

src/main/resources/base/element/string.json

startWindowIcon

当前UIAbility组件启动页面中,显示的图标,如下图:

startWindowBackground

当前UIAbility组件启动页面中,背景颜色

颜色必须定义在 color.json 文件中

如下图,红框启动图标以外的部分:

exported

标识当前UIAbility组件是否可以被其他应用调用。

  • true:表示可以被其他应用调用。

  • false:表示不可以被其他应用调用,包括无法被aa工具命令拉起应用。

缺省值为false

例子

{
  "module": {
    // ...
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:layered_image",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:startIcon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      },
    ],
  }
}

原文出处:/show_1GWwjeI0Fk.html