Want概述
Want的定義與用途
[Want]是一種對象,用于在應用組件之間傳遞信息。
其中,一種常見的使用場景是作為[startAbility()
]方法的參數。例如,當UIAbilityA需要啟動UIAbilityB并向UIAbilityB傳遞一些數據時,可以使用Want作為一個載體,將數據傳遞給UIAbilityB。
圖1 Want用法示意
Want的類型
顯式Want :在啟動目標應用組件時,調用方傳入的want參數中指定了abilityName和bundleName,稱為顯式Want。
顯式Want通常用于應用內組件啟動,通過在Want對象內指定本應用Bundle名稱信息(bundleName)和abilityName來啟動應用內目標組件。當有明確處理請求的對象時,顯式Want是一種簡單有效的啟動目標應用組件的方式。說明:
API 11及以前版本,支持使用顯式want拉起其他應用的UIAbility。 從API 12開始,不再支持使用顯式Want進行應用間跳轉,需要通過openLink接口拉起其他應用。
import { Want } from '@kit.AbilityKit'; let wantInfo: Want = { deviceId: '', // deviceId為空表示本設備 bundleName: 'com.example.myapplication', abilityName: 'FuncAbility', }
隱式Want :在啟動目標應用組件時,調用方傳入的want參數中未指定abilityName,稱為隱式Want。
當需要處理的對象不明確時,可以使用隱式Want,在當前應用中使用其他應用提供的某個能力,而不關心提供該能力的具體應用。隱式Want使用[skills標簽]來定義需要使用的能力,并由系統匹配聲明支持該請求的所有應用來處理請求。例如,需要打開一個鏈接的請求,系統將匹配所有聲明支持該請求的應用,然后讓用戶選擇使用哪個應用打開鏈接。import { Want } from '@kit.AbilityKit'; 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', };
說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]- 根據系統中待匹配應用組件的匹配情況不同,使用隱式Want啟動應用組件時會出現以下三種情況。
- 未匹配到滿足條件的應用組件:啟動失敗。
- 匹配到一個滿足條件的應用組件:直接啟動該應用組件。
- 匹配到多個滿足條件的應用組件(UIAbility):彈出選擇框讓用戶選擇。
- 對于啟動ServiceExtensionAbility的場景:
- 調用方傳入的want參數中帶有abilityName,則不允許通過隱式Want啟動ServiceExtensionAbility。
- 調用方傳入的want參數中帶有bundleName,則允許使用startServiceExtensionAbility()方法隱式Want啟動ServiceExtensionAbility,默認返回優先級最高的ServiceExtensionAbility,如果優先級相同,返回第一個。
- 根據系統中待匹配應用組件的匹配情況不同,使用隱式Want啟動應用組件時會出現以下三種情況。
審核編輯 黃宇
-
鴻蒙
+關注
關注
57文章
2392瀏覽量
43055
發布評論請先 登錄
相關推薦
【專家問答】楊光明:鴻蒙系統研發工程師教你從0開發鴻蒙PCB開發板
鴻蒙應用開發入門資料合集
技術普及篇——信息的載體是什么?
技術普及篇——信息的載體是什么?
使用 Taro 開發鴻蒙原生應用 —— 快速上手,鴻蒙應用開發指南
![使用 Taro <b class='flag-5'>開發</b><b class='flag-5'>鴻蒙</b>原生應用 —— 快速上手,<b class='flag-5'>鴻蒙</b>應用<b class='flag-5'>開發</b>指南](https://file1.elecfans.com//web2/M00/BF/7B/wKgZomW8oymAM8T_AAD2Uyqthhs082.png)
鴻蒙OS開發實例:【消息傳遞】
![<b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發</b>實例:【消息<b class='flag-5'>傳遞</b>】](https://file1.elecfans.com/web2/M00/C6/45/wKgZomYGjSmAc306AAE5utvtrtQ504.jpg)
鴻蒙Ability Kit(程序框架服務)【顯式Want與隱式Want匹配規則】
![<b class='flag-5'>鴻蒙</b>Ability Kit(程序框架服務)【顯式<b class='flag-5'>Want</b>與隱式<b class='flag-5'>Want</b>匹配規則】](https://file1.elecfans.com/web2/M00/ED/10/wKgaomZhV1yAQE_mAADtnsy98ek434.jpg)
鴻蒙Ability Kit(程序框架服務)【應用間使用Want分享數據】
![<b class='flag-5'>鴻蒙</b>Ability Kit(程序框架服務)【應用間使用<b class='flag-5'>Want</b>分享數據】](https://file1.elecfans.com/web2/M00/ED/58/wKgaomZis9qAfyXtAAEHOeSCSko791.jpg)
慶科信息獲HarmonyOS高級應用開發能力認證!助力品牌快速打造鴻蒙原生應用
![慶科<b class='flag-5'>信息</b>獲HarmonyOS高級應用<b class='flag-5'>開發</b>能力認證!助力品牌快速打造<b class='flag-5'>鴻蒙</b>原生應用](https://file1.elecfans.com/web2/M00/FC/F9/wKgZomaXVOWAHJykAAwHKQaNAck465.png)
OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發板來演示
![OpenHarmony屬性<b class='flag-5'>信息</b>怎么修改?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>板來演示](https://file1.elecfans.com/web3/M00/00/12/wKgZPGdGdlaAQcG2AAB7LqkFe94757.png)
評論