久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > 千鋒教育鴻蒙(HarmonyOS)開發(fā)教程:module.json5配置文件

千鋒教育鴻蒙(HarmonyOS)開發(fā)教程:module.json5配置文件

來源:千鋒教育
發(fā)布人:千鋒
時間: 2023-11-18 15:53:22 1700294002

先通過一個示例,整體認識一下module.json5配置文件。

{
"module": {
"name": "entry",
"type": "entry",
"description": "$string:module_desc",
"mainElement": "EntryAbility",
"deviceTypes": [
"default",
"tablet"
],
"deliveryWithInstall": true,
"installationFree": false,
"pages": "$profile:main_pages",
"virtualMachine": "ark",
"metadata": [
{
"name": "string",
"value": "string",
"resource": "$profile:distributionFilter_config"
}
],
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ts",
"description": "$string:EntryAbility_desc",
"icon": "$media:icon",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:icon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"ohos.want.action.home"
]
}
]
}
],
"requestPermissions": [
{
"name": "ohos.abilitydemo.permission.PROVIDER",
"reason": "$string:reason",
"usedScene": {
"abilities": [
"FormAbility"
],
"when": "inuse"
}
}
]
}
}

 module.json5配置文件包含以下標簽。

表1 module.json5配置文件配置標簽說明

QQ截圖20231118153921

deviceTypes標簽

表2 deviceType標簽配置說明

微信截圖_20231118153956

deviceTypes示例:

{
"module": {
"name": "myHapName",
"type": "feature",
"deviceTypes" : [
"tablet"
]
}
}

 pages標簽

該標簽是一個profile文件資源,用于指定描述頁面信息的配置文件。

{
"module": {
// ...
"pages": "$profile:main_pages", // 通過profile下的資源文件配置
}
}

 在開發(fā)視圖的resources/base/profile下面定義配置文件main_pages.json,其中文件名(main_pages)可自定義,需要和前文中pages標簽指定的信息對應(yīng),配置文件中列舉了當前應(yīng)用組件中的頁面信息。

表3 pages配置文件標簽說明

微信截圖_20231118154128

{
"src": [
"pages/index/mainPage",
"pages/second/payment",
"pages/third/shopping_cart",
"pages/four/owner"
]
}

 metadata標簽

該標簽標識HAP的自定義元信息,標簽值為數(shù)組類型,包含name,value,resource三個子標簽。

表5 metadata標簽說明

微信截圖_20231118154214

{
"module": {
"metadata": [{
"name": "module_metadata",
"value": "a test demo for module metadata",
"resource": "$profile:shortcuts_config",
}],

"abilities": [{
"metadata": [{
"name": "ability_metadata",
"value": "a test demo for ability",
"resource": "$profile:config_file"
},
{
"name": "ability_metadata_2",
"value": "a string test",
"resource": "$profile:config_file"
}],
}],

"extensionAbilities": [{
"metadata": [{
"name": "extensionAbility_metadata",
"value": "a test for extensionAbility",
"resource": "$profile:config_file"
},
{
"name": "extensionAbility_metadata_2",
"value": "a string test",
"resource": "$profile:config_file"
}],
}]
}
}

 abilities標簽

abilities標簽描述UIAbility組件的配置信息,標簽值為數(shù)組類型,該標簽下的配置只對當前UIAbility生效。

表6 abilities標簽說明

QQ截圖20231118154350

abilities示例:

{
"abilities": [{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ts",
"launchType":"singleton",
"description": "$string:description_main_ability",
"icon": "$media:icon",
"label": "Login",
"permissions": [],
"metadata": [],
"exported": true,
"continuable": true,
"skills": [{
"actions": ["ohos.want.action.home"],
"entities": ["entity.system.home"],
"uris": []
}],
"backgroundModes": [
"dataTransfer",
"audioPlayback",
"audioRecording",
"location",
"bluetoothInteraction",
"multiDeviceConnection",
"wifiInteraction",
"voip",
"taskKeeping"
],
"startWindowIcon": "$media:icon",
"startWindowBackground": "$color:red",
"removeMissionAfterTerminate": true,
"orientation": " ",
"supportWindowMode": ["fullscreen", "split", "floating"],
"maxWindowRatio": 3.5,
"minWindowRatio": 0.5,
"maxWindowWidth": 2560,
"minWindowWidth": 1400,
"maxWindowHeight": 300,
"minWindowHeight": 200,
"excludeFromMissions": false
}]
}

 skills標簽

該標簽標識UIAbility組件或者ExtensionAbility組件能夠接收的Want的特征。

微信截圖_20231118154448

微信截圖_20231118154541

skills示例:

{
"abilities": [
{
"skills": [
{
"actions": [
"ohos.want.action.home"
],
"entities": [
"entity.system.home"
],
"uris": [
{
"scheme":"http",
"host":"example.com",
"port":"80",
"path":"path",
"type": "text/*"
}
]
}
]
}
]
}

 extensionAbilities標簽

描述extensionAbilities的配置信息,標簽值為數(shù)組類型,該標簽下的配置只對當前extensionAbilities生效。

表9 extensionAbilities標簽說明

QQ截圖20231118154649

extensionAbilities示例:

{
"extensionAbilities": [
{
"name": "FormName",
"srcEntry": "./form/MyForm.ts",
"icon": "$media:icon",
"label" : "$string:extension_name",
"description": "$string:form_description",
"type": "form",
"permissions": ["ohos.abilitydemo.permission.PROVIDER"],
"readPermission": "",
"writePermission": "",
"exported": true,
"uri":"scheme://authority/path/query",
"skills": [{
"actions": [],
"entities": [],
"uris": []
}],
"metadata": [
{
"name": "ohos.extension.form",
"resource": "$profile:form_config",
}
]
}
]
}

 requestPermissions標簽

該標簽標識應(yīng)用運行時需向系統(tǒng)申請的權(quán)限集合。

說明

在requestPermissions標簽中配置的權(quán)限項將在應(yīng)用級別生效,即該權(quán)限適用于整個應(yīng)用程序。

如果應(yīng)用需要訂閱自己發(fā)布的事件,而且應(yīng)用在extensionAbilities標簽中的permissions字段中設(shè)置了訪問該應(yīng)用所需要的權(quán)限,那么應(yīng)用也需要在requestPermissions標簽中注冊相關(guān)權(quán)限才能收到該事件。

微信截圖_20231118154746

requestPermissions示例:

{
"module" : {
"requestPermissions": [
{
"name": "ohos.abilitydemo.permission.PROVIDER",
"reason": "$string:reason",
"usedScene": {
"abilities": [
"EntryFormAbility"
],
"when": "inuse"
}
}
]
}
}

 shortcuts標簽

shortcuts標識應(yīng)用的快捷方式信息。標簽值為數(shù)組,最多可以配置四個快捷方式。其包含四個子標簽shortcutId、label、icon、wants。

metadata中指定shortcut信息,其中:

name:指定shortcuts的名稱。使用ohos.ability.shortcuts作為shortcuts信息的標識。

resource:指定shortcuts信息的資源位置。

表11 shortcuts標簽說明

微信截圖_20231118154831

在/resource/base/profile/目錄下配置shortcuts_config.json配置文件。

{
"shortcuts": [
{
"shortcutId": "id_test1",
"label": "$string:shortcut",
"icon": "$media:aa_icon",
"wants": [
{
"bundleName": "com.ohos.hello",
"abilityName": "EntryAbility"
}
]
}
]
}

 在module.json5配置文件的abilities標簽中,針對需要添加快捷方式的UIAbility進行配置metadata標簽,使shortcut配置文件對該UIAbility生效。

{
"module": {
// ...
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ts",
// ...
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"ohos.want.action.home"
]
}
],
"metadata": [
{
"name": "ohos.ability.shortcuts",
"resource": "$profile:shortcuts_config"
}
]
}
]
}
}

 distributionFilter標簽

該標簽下的子標簽均為可選字段,用于定義HAP對應(yīng)的細分設(shè)備規(guī)格的分發(fā)策略,以便應(yīng)用市場在云端分發(fā)HAP時做精準匹配。該標簽需要配置在/resource/profile資源目錄下;在進行分發(fā)時,通過deviceType與下表屬性的匹配關(guān)系,唯一確定一個用于分發(fā)到設(shè)備的HAP。

表12 distributionFilter標簽說明

微信截圖_20231118154940

微信截圖_20231118155007

微信截圖_20231118155024

微信截圖_20231118155042

在開發(fā)視圖的resources/base/profile下面定義配置文件distro_filter_config.json,文件名可以自定義。

{
"distributionFilter": {
"screenShape": {
"policy": "include",
"value": [
"circle",
"rect"
]
},
"screenWindow": {
"policy": "include",
"value": [
"454*454",
"466*466"
]
},
"screenDensity": {
"policy": "exclude",
"value": [
"ldpi",
"xldpi"
]
},
"countryCode": { // 支持中國和香港地區(qū)分發(fā)
"policy": "include",
"value": [
"CN",
"HK"
]
}
}
}

 在module.json5配置文件的module標簽中定義metadata信息。

{
"module": {
// ...
"metadata": [
{
"name": "ohos.module.distro",
"resource": "$profile:distro_filter_config",
}
]
}
}

 testRunner標簽

此標簽用于支持對測試框架的配置。

表17 testRunner標簽說明

微信截圖_20231118155151

testRunner標簽示例:

{
"module": {
// ...
"testRunner": {
"name": "myTestRunnerName",
"srcPath": "etc/test/TestRunner.ts"
}
}
}

 

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
什么是云管理平臺

什么是云管理平臺?云管理平臺(Cloud Management Platform,CMP)是由Gartner提出的企業(yè)云戰(zhàn)略中的一種產(chǎn)品形態(tài),是提供對公有云、私有云和混合...詳情>>

2023-12-04 11:10:46
Docker的核心底層技術(shù)有哪些

Docker的核心底層技術(shù)有哪些?Docker可以運行在64位Linux發(fā)行版以及蘋果和微軟系統(tǒng)上,但后兩者只能使用虛擬機作為宿主機。所有的可運行的容器...詳情>>

2023-12-04 06:27:25
什么是包過濾技術(shù)

什么是包過濾技術(shù)?包過濾(Packet Filtering)技術(shù)是根據(jù)流經(jīng)防火墻的數(shù)據(jù)包的特征,依據(jù)預(yù)先定義好的規(guī)則,決定是否允許數(shù)據(jù)包通過的技術(shù)。它對...詳情>>

2023-12-04 03:40:45
什么是網(wǎng)絡(luò)安全掃描技術(shù)

什么是網(wǎng)絡(luò)安全掃描技術(shù)?物聯(lián)網(wǎng)的網(wǎng)絡(luò)安全掃描技術(shù)是網(wǎng)絡(luò)安全領(lǐng)域的重要技術(shù)之一,是一種遠程檢測目標網(wǎng)絡(luò)或本地主機安全性脆弱點的技術(shù),是為...詳情>>

2023-12-04 03:07:25
IaaS的優(yōu)勢

IaaS的優(yōu)勢。與在本地計算中心部署資源相比,IaaS具有強大的敏捷性和高度的可擴展性。企業(yè)在內(nèi)部部署一個新的虛擬機往往需要幾天甚至一周以上的...詳情>>

2023-12-04 02:17:25