Want概述
Want的定義與用途
[Want]是一種對(duì)象,用于在應(yīng)用組件之間傳遞信息。
其中,一種常見(jiàn)的使用場(chǎng)景是作為[startAbility()
]方法的參數(shù)。例如,當(dāng)UIAbilityA需要啟動(dòng)UIAbilityB并向UIAbilityB傳遞一些數(shù)據(jù)時(shí),可以使用Want作為一個(gè)載體,將數(shù)據(jù)傳遞給UIAbilityB。
圖1 Want用法示意
Want的類(lèi)型
- 顯式Want :在啟動(dòng)目標(biāo)應(yīng)用組件時(shí),調(diào)用方傳入的want參數(shù)中指定了abilityName和bundleName,稱(chēng)為顯式Want。
顯式Want通常用于在當(dāng)前應(yīng)用中啟動(dòng)已知的目標(biāo)應(yīng)用組件,通過(guò)提供目標(biāo)應(yīng)用組件所在應(yīng)用的Bundle名稱(chēng)信息(bundleName)并在Want對(duì)象內(nèi)指定abilityName來(lái)啟動(dòng)目標(biāo)應(yīng)用組件。當(dāng)有明確處理請(qǐng)求的對(duì)象時(shí),顯式Want是一種簡(jiǎn)單有效的啟動(dòng)目標(biāo)應(yīng)用組件的方式。
import Want from '@ohos.app.ability.Want';
let wantInfo: Want = {
deviceId: '', // deviceId為空表示本設(shè)備
bundleName: 'com.example.myapplication',
abilityName: 'FuncAbility',
}
隱式Want :在啟動(dòng)目標(biāo)應(yīng)用組件時(shí),調(diào)用方傳入的want參數(shù)中未指定abilityName,稱(chēng)為隱式Want。
當(dāng)需要處理的對(duì)象不明確時(shí),可以使用隱式Want,在當(dāng)前應(yīng)用中使用其他應(yīng)用提供的某個(gè)能力,而不關(guān)心提供該能力的具體應(yīng)用。隱式Want使用[skills標(biāo)簽]來(lái)定義需要使用的能力,并由系統(tǒng)匹配聲明支持該請(qǐng)求的所有應(yīng)用來(lái)處理請(qǐng)求。例如,需要打開(kāi)一個(gè)鏈接的請(qǐng)求,系統(tǒng)將匹配所有聲明支持該請(qǐng)求的應(yīng)用,然后讓用戶(hù)選擇使用哪個(gè)應(yīng)用打開(kāi)鏈接。import Want from '@ohos.app.ability.Want'; let wantInfo: Want = { // uncomment line below if wish to implicitly query only in the specific bundle. // bundleName: 'com.example.myapplication', action: 'ohos.want.action.search', // entities can be omitted entities: [ 'entity.system.browsable' ], uri: 'https://www.test.com:8080/query/student', type: 'text/plain', };
說(shuō)明:
開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]- 根據(jù)系統(tǒng)中待匹配應(yīng)用組件的匹配情況不同,使用隱式Want啟動(dòng)應(yīng)用組件時(shí)會(huì)出現(xiàn)以下三種情況。
- 未匹配到滿足條件的應(yīng)用組件:?jiǎn)?dòng)失敗。
- 匹配到一個(gè)滿足條件的應(yīng)用組件:直接啟動(dòng)該應(yīng)用組件。
- 匹配到多個(gè)滿足條件的應(yīng)用組件(UIAbility):彈出選擇框讓用戶(hù)選擇。
- 對(duì)于啟動(dòng)ServiceExtensionAbility的場(chǎng)景:
- 調(diào)用方傳入的want參數(shù)中帶有abilityName,則不允許通過(guò)隱式Want啟動(dòng)ServiceExtensionAbility。
- 調(diào)用方傳入的want參數(shù)中帶有bundleName,則允許使用startServiceExtensionAbility()方法隱式Want啟動(dòng)ServiceExtensionAbility,默認(rèn)返回優(yōu)先級(jí)最高的ServiceExtensionAbility,如果優(yōu)先級(jí)相同,返回第一個(gè)。
- 根據(jù)系統(tǒng)中待匹配應(yīng)用組件的匹配情況不同,使用隱式Want啟動(dòng)應(yīng)用組件時(shí)會(huì)出現(xiàn)以下三種情況。
審核編輯 黃宇
-
框架
+關(guān)注
關(guān)注
0文章
403瀏覽量
17475 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2339瀏覽量
42818
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論