1# 应用/组件级配置 2 3在开发应用时,需要配置应用的一些标签,例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。 4 5图标和标签通常一起配置,可以分为应用图标、应用标签和入口图标、入口标签,分别对应[app.json5配置文件](../quick-start/app-configuration-file.md)和[module.json5配置文件](../quick-start/module-configuration-file.md)中的icon和label标签。 6 7应用图标和标签是在设置应用中使用,例如设置应用中的应用列表。入口图标是应用安装完成后在设备桌面上显示出来的,如下图所示。入口图标是以[UIAbility](uiability-overview.md)为粒度,支持同一个应用存在多个入口图标和入口标签,点击后进入对应的UIAbility界面。 8 9**图1** 应用图标和标签 10![application-component-configuration-stage](figures/application-component-configuration-stage.png) 11 12 13- **应用包名配置** 14 15 应用需要在工程的AppScope目录下的[app.json5配置文件](../quick-start/app-configuration-file.md)中配置bundleName标签,该标签用于标识应用的唯一性。推荐采用反域名形式命名(如com.example.demo,建议第一级为域名后缀com,第二级为厂商/个人名,第三级为应用名,也可以多级)。 16 17- **应用图标和标签配置** 18 19 Stage模型的应用需要配置应用图标和应用标签。应用图标和标签是在设置应用中使用,例如设置应用中的应用列表,会显示出对应的图标和标签。 20 21 应用图标需要在工程的AppScope目录下的[app.json5配置文件](../quick-start/app-configuration-file.md)中配置icon标签。应用图标需配置为图片的资源索引,配置完成后,该图片即为应用的图标。 22 23 应用标签需要在工程的AppScope模块下的[app.json5配置文件](../quick-start/app-configuration-file.md)中配置label标签。标识应用对用户显示的名称,需要配置为字符串资源的索引。 24 25 ```json 26 { 27 "app": { 28 "icon": "$media:app_icon", 29 "label": "$string:app_name" 30 ... 31 } 32 } 33 ``` 34 35- **入口图标和标签配置** 36 37 Stage模型支持对组件配置入口图标和入口标签。入口图标和入口标签会显示在桌面上。 38 39 入口图标需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中配置,在abilities标签下面有icon标签。例如希望在桌面上显示该UIAbility的图标,则需要在skills标签下面的entities中添加"entity.system.home"、actions中添加"ohos.want.action.home"。同一个应用有多个UIAbility配置上述字段时,桌面上会显示出多个图标,分别对应各自的UIAbility。 40 41 ```json 42 { 43 "module": { 44 ... 45 "abilities": [ 46 { 47 // $开头的为资源值 48 "icon": "$media:icon", 49 "label": "$string:EntryAbility_label", 50 "skills": [ 51 { 52 "entities": [ 53 "entity.system.home" 54 ], 55 "actions": [ 56 "ohos.want.action.home" 57 ] 58 } 59 ], 60 } 61 ] 62 } 63 } 64 ``` 65 OpenHarmony系统对无图标应用严格管控,防止一些恶意应用故意配置无入口图标,导致用户找不到软件所在的位置,无法操作卸载应用,在一定程度上保证用户的手机安全。 66 67 如果应用确需隐藏入口图标,需要配置AllowAppDesktopIconHide应用特权,具体配置方式参考[应用特权配置指南](../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。详细的入口图标及入口标签的显示规则如下。 68 69 * HAP中包含UIAbility 70 * 在module.json5配置文件的abilities标签中设置了入口图标 71 * 该应用没有隐藏图标的特权 72 * 系统将使用该UIAbility配置的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到该UIAbility首页。 73 * 系统将使用该UIAbility配置的label作为入口标签,并显示在桌面上,如果没有配置label,系统将使用app.json5中的label作为入口标签,并显示在桌面上。 74 * 该应用具有隐藏图标的特权 75 * 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。 76 * 在module.json5配置文件的abilities标签中未设置入口图标 77 * 该应用没有隐藏图标的特权 78 * 系统将使用app.json5中的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到应用管理中对应的应用详情页面,如下图所示。 79 * 系统将使用app.json5中的label作为入口标签,并显示在桌面上。 80 * 该应用具有隐藏图标的特权 81 * 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。 82 * HAP中不包含UIAbility 83 * 该应用没有隐藏图标的特权 84 * 系统将使用app.json5中的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到应用管理中对应的应用详情页面,如下图所示。 85 * 系统将使用app.json5中的label作为入口标签,并显示在桌面上。 86 * 该应用具有隐藏图标的特权 87 * 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。 88 89 **图2** 应用的详情页示意图 90 ![应用的详情页例图](figures/application_details.jpg) 91 92- **应用版本声明配置** 93 94 应用版本声明需要在工程的AppScope目录下的[app.json5配置文件](../quick-start/app-configuration-file.md)中配置versionCode标签和versionName标签。versionCode用于标识应用的版本号,该标签值为32位非负整数。此数字仅用于确定某个版本是否比另一个版本更新,数值越大表示版本越高。versionName标签标识版本号的文字描述。 95 96- **Module支持的设备类型配置** 97 98 Module支持的设备类型需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中配置deviceTypes标签,如果deviceTypes标签中添加了某种设备,则表明当前的Module支持在该设备上运行。 99 100- **Module权限配置** 101 102 Module访问系统或其他应用受保护部分所需的权限信息需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中配置requestPermission标签。该标签用于声明需要申请权限的名称、申请权限的原因以及权限使用的场景。 103