FA模型應用配置文件
應用配置文件中包含應用配置信息、應用組件信息、權限信息、開發(fā)者自定義信息等,這些信息在編譯構建、分發(fā)和運行解決分別提供給編譯工具、應用市場和操作系統使用。
在基于FA模型開發(fā)的應用項目代碼下,都存在一個config.json配置文件,常用配置項請參見[應用/組件級配置]。
應用/組件級配置
開發(fā)者在開發(fā)應用時,需要配置應用的一些標簽,例如應用的Bundle名稱、圖標等標識特征的屬性。這一章節(jié)描述了開發(fā)者在開發(fā)應用時需要配置的一些關鍵標簽。 開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
應用包名配置
應用包名需在config.json文件中app標簽下配置bundleName字段,該字段用于指定應用的包名,需保證唯一性。包名是由字母、數字、下劃線(_)和點號(.)組成的字符串,必須以字母開頭。支持的字符串長度為7~127字節(jié)。包名通常采用反向域名形式表示(例如,"com.example.myapplication")。建議第一級為域名后綴"com",第二級為廠商/個人名,也可以采用多級。應用名稱配置可以參考[app標簽說明]。
圖標和標簽配置
圖標和標簽通常一起配置,可以分為應用圖標、應用標簽和入口圖標、入口標簽。
應用圖標和標簽通常用于標識整個應用,可以在標識應用的界面使用該類型圖標和標簽。比如:
- 設置應用中,需要展示應用列表時
- 在隱私管理中,需要展示應用申請的權限時
- 在狀態(tài)欄顯示通知消息時
入口圖標和標簽是應用安裝完成后可以在設備桌面上顯示出來的。入口圖標是以Page類型的Ability為粒度,支持同一個應用存在多個入口圖標和入口標簽,點擊后進入對應的Ability界面。比如:
- 桌面上需要顯示圖標時
- 最近任務列表中顯示時
應用圖標和標簽配置
FA模型不支持直接配置應用圖標和標簽,會以符合規(guī)則的PageAbility的圖標和標簽作為應用圖標和標簽。存在多個時,則取位置靠前的Ability的icon和label作為應用的icon和label。
入口圖標和標簽配置
入口圖標和標簽配置方法
FA模型的入口圖標和標簽是Page類型的Ability配置的icon和label。
PageAbility的圖標和標簽配置請參見[PageAbility組件配置]。需在config.json文件的abilities標簽下做如下配置:
- 配置icon字段,標簽值為資源文件的索引。圖標需要在配置IDE的資源文件中,路徑為/resource/base/media。取值示例:$media:ability_icon。
- 配置label字段,標簽值為資源文件的索引,標識Ability對用戶顯示的名稱。取值可以是Ability名稱,也可以是對該名稱的資源索引,以支持多語言。
如果在該PageAbility的skills屬性中,actions的取值包含 "action.system.home",entities取值中包含"entity.system.home",則該Ability的icon和label將同時作為應用的icon和label。如果存在多個符合條件的Ability,則取位置靠前的Ability的icon和label作為應用的icon和label。圖標和標簽配置可以參考[abilities標簽說明]。
{
...
"module": {
...
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"formsEnabled": false,
"name": ".MainAbility",
"srcLanguage": "ets",
"srcPath": "MainAbility",
"icon": "$media:icon",
"description": "$string:MainAbility_desc",
"label": "$string:MainAbility_label",
"type": "page",
"visible": true,
"launchType": "singleton"
},
...
]
...
}
}
入口圖標和標簽管控規(guī)則
系統對無圖標應用實施嚴格管控,防止一些惡意應用故意配置無入口圖標,導致用戶找不到軟件所在的位置,無法操作卸載應用,在一定程度上保證用戶終端設備的安全。
如果應用確需隱藏入口圖標,需要配置AllowAppDesktopIconHide應用特權。詳細的入口圖標及入口標簽的顯示規(guī)則如下。
- HAP中包含PageAbility
- 在config.json配置文件的abilities標簽中設置了入口圖標
- 該應用沒有隱藏圖標的特權
- 系統將使用該PageAbility配置的icon作為入口圖標,并顯示在桌面上。用戶點擊該圖標,頁面跳轉到該PageAbility首頁。
- 系統將使用該PageAbility配置的label作為入口標簽,并顯示在桌面上,如果沒有配置label,系統將使用應用的bundleName作為入口標簽,并顯示在桌面上。
- 該應用具有隱藏圖標的特權
- 桌面應用查詢時不返回應用信息,不會在桌面上顯示對應的入口圖標和標簽。
- 該應用沒有隱藏圖標的特權
- 在config.json配置文件的abilities標簽中未設置入口圖標
- 該應用沒有隱藏圖標的特權
- 系統將使用系統資源中的icon作為入口圖標,并顯示在桌面上。用戶點擊該圖標,頁面跳轉到應用管理中對應的應用詳情頁面。
- 系統將使用該PageAbility配置的label作為入口標簽,并顯示在桌面上,如果沒有配置label,系統將使用應用的bundleName作為入口標簽,并顯示在桌面上。
- 該應用具有隱藏圖標的特權
- 桌面應用查詢時不返回應用信息,不會在桌面上顯示對應的入口圖標和標簽。
- 該應用沒有隱藏圖標的特權
- 在config.json配置文件的abilities標簽中設置了入口圖標
- HAP中不包含PageAbility
- 該應用沒有隱藏圖標的特權
- 系統將使用系統資源中的icon作為入口圖標,并顯示在桌面上。用戶點擊該圖標,頁面跳轉到應用管理中對應的應用詳情頁面。
- 系統將使用應用的bundleName作為入口標簽,并顯示在桌面上。
- 該應用具有隱藏圖標的特權
- 桌面應用查詢時不返回應用信息,不會在桌面上顯示對應的入口圖標和標簽。
- 該應用沒有隱藏圖標的特權
應用版本聲明配置
應用版本聲明配置需在config.json中的app標簽下配置version字段,以說明應用當前的版本號和版本名稱以及應用能夠兼容的最低歷史版本號。
Module支持的設備類型配置
Module支持的設備類型需要在config.json文件中配置deviceType字段,如果deviceType標簽中添加了某種設備,則表明當前的module支持在該設備上運行。
組件權限申請配置
組件權限申請配置需在config.json中的module標簽下配置reqPermissions字段。來聲明需要申請權限的名稱,申請權限的原因以及權限使用的場景。
應用配置文件概述(FA模型)
每個應用項目必須在項目的代碼目錄下加入配置文件,這些配置文件會向編譯工具、操作系統和應用市場提供描述應用的基本信息。
應用配置文件需申明以下內容:
- 應用的軟件Bundle名稱,應用的開發(fā)廠商,版本號等應用的基本配置信息,這些信息被要求設置在app這個字段下。
- 應用的組件的基本信息,包括所有的Ability,設備類型,組件的類型以及當前組件所使用的語法類型。
- 應用在具體設備上的配置信息,這些信息會影響應用在設備上的具體功能。
在FA模型的應用開發(fā)過程中,需要在config.json配置文件中對應用的包結構進行聲明。
配置文件的內部結構
config.json由app、deviceConfig和module三個部分組成,缺一不可。
屬性名稱 | 含義 | 數據類型 | 是否可缺省 |
---|---|---|---|
[app] | 標識應用的全局配置信息。同一個應用的不同HAP的app配置必須保持一致。 | 對象 | 不可缺省。 |
[deviceConfig] | 標識應用在具體設備上的配置信息。 | 對象 | 不可缺省。 |
[module] | 標識HAP的配置信息。該標簽下的配置只對當前HAP生效。 | 對象 | 不可缺省。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
config.json示例:
{
"app": {
"vendor": "example",
"bundleName": "com.example.demo",
"version": {
"code": 1000000,
"name": "1.0.0"
}
},
"deviceConfig": {
},
"module": {
"mainAbility": ".MainAbility_entry",
"deviceType": [
"tablet"
],
"commonEvents": [
{
"name": ".EntryAbility",
"permission": "ohos.permission.GET_BUNDLE_INFO",
"data": [
"com.example.demo",
"100"
],
"events": [
"install",
"update"
]
}
],
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"visible": true,
"srcPath": "MainAbility_entry",
"name": ".MainAbility_entry",
"srcLanguage": "ets",
"icon": "$media:icon",
// $string:MainAbility_entry_desc為資源索引
"description": "$string:MainAbility_entry_desc",
"formsEnabled": false,
// $string:MainAbility_entry_label為資源索引
"label": "$string:MainAbility_entry_label",
"type": "page",
"launchType": "multiton"
}
],
"distro": {
"moduleType": "entry",
"installationFree": false,
"deliveryWithInstall": true,
"moduleName": "myapplication"
},
"package": "com.example.myapplication",
"srcPath": "",
"name": ".myapplication",
"js": [
{
"mode": {
"syntax": "ets",
"type": "pageAbility"
},
"pages": [
"pages/index"
],
"name": ".MainAbility_entry",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
]
}
}
審核編輯 黃宇
-
框架
+關注
關注
0文章
403瀏覽量
17519 -
模型
+關注
關注
1文章
3296瀏覽量
49042 -
鴻蒙
+關注
關注
57文章
2390瀏覽量
42968
發(fā)布評論請先 登錄
相關推薦
評論