/* * Copyright (c) 2022-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file * @kit AbilityKit */ /** * Want is the basic communication component of the system. * * @syscap SystemCapability.Ability.AbilityBase * @since 9 */ /** * Want is the basic communication component of the system. * * @syscap SystemCapability.Ability.AbilityBase * @crossplatform * @since 10 */ /** * Want is a carrier for information transfer between objects (application components). * Want can be used as a parameter of startAbility to specify a startup target and information that needs to be carried * during startup, for example, bundleName and abilityName, which respectively indicate the bundle name of the target * ability and the ability name in the bundle. * When UIAbilityA needs to start UIAbilityB and transfer some data to UIAbilityB, it can use Want a carrier to * transfer the data. * * @syscap SystemCapability.Ability.AbilityBase * @crossplatform * @atomicservice * @since arkts {'1.1':'11', '1.2':'20'} * @arkts 1.1&1.2 */ export default class Want { /** * bundle name * * @type { ?string } * @syscap SystemCapability.Ability.AbilityBase * @since 9 */ /** * bundle name * * @syscap SystemCapability.Ability.AbilityBase * @crossplatform * @since 10 */ /** * Bundle name of the ability. * * @type { ?string } * @syscap SystemCapability.Ability.AbilityBase * @crossplatform * @atomicservice * @since arkts {'1.1':'11', '1.2':'20'} * @arkts 1.1&1.2 */ bundleName?: string; /** * ability name * * @type { ?string } * @syscap SystemCapability.Ability.AbilityBase * @since 9 */ /** * ability name * * @syscap SystemCapability.Ability.AbilityBase * @crossplatform * @since 10 */ /** * Name of the ability. * If both bundleName and abilityName are specified in a Want object, the Want object can match a specific ability. * *
**NOTE**:
*
The value of abilityName must be unique in an application.
*
**NOTE**:
*
If this field is unspecified, the local device is used.
*
**NOTE**:
*
For details about the MIME type definition,
* see {@link https://www.iana.org/assignments/media-types/media-types.xhtml?utm_source=ld246.com}.
*
**NOTE**:
*
1. The values of the following keys are assigned by the system. Manual settings do not take effect, since the
* system automatically changes the values to the actual values during data transfer.
* -ohos.aafwk.param.callerPid: PID of the caller. The value is a string.
* -ohos.aafwk.param.callerBundleName: bundle name of the caller. The value is a string.
* -ohos.aafwk.param.callerAbilityName: ability name of the caller. The value is a string.
* -ohos.aafwk.param.callerNativeName: process name of the caller when the native method is called. The value is
* a string.
* -ohos.aafwk.param.callerAppId: appId of the caller. The value is a string.
* -ohos.aafwk.param.callerAppIdentifier: appIdentifier of the caller. The value is a string.
* -ohos.aafwk.param.callerToken: token of the caller. The value is a string.
* -ohos.aafwk.param.callerUid: UID in BundleInfo, that is, the application's UID in the bundle information. The
* value is a number.
* -ohos.param.callerAppCloneIndex: clone index of the caller. The value is of the numeric type.
* -component.startup.newRules: enabled status of the new control rule. The value is of the Boolean type.
* -moduleName: module name of the caller. The value is a string.
* -ability.params.backToOtherMissionStack: support for redirection back across mission stacks. The value is of
* the Boolean type.
* -ohos.ability.params.abilityRecoveryRestart: support for ability restart upon fault recovery. The value is of
* the Boolean type.
* -ohos.extra.param.key.contentTitle: title that can be shared by the atomic service. The value is a string.
* -ohos.extra.param.key.shareAbstract: content that can be shared by the atomic service. The value is a string.
* -ohos.extra.param.key.shareUrl: URL of the content that can be shared by the atomic service. The value is
* a string.
* -ohos.extra.param.key.supportContinuePageStack: support for migration of page stack information during
* cross-device migration. The value is of the Boolean type. The default value is true, indicating that page stack
* information is automatically migrated.
* -ohos.extra.param.key.supportContinueSourceExit: support for application exit on the source device during
* cross-device migration. The value is of the Boolean type. The default value is true, indicating that the
* application on the source device automatically exits.
* -ohos.extra.param.key.showMode: mode to show the atomic service startup. The value is an enumerated value of
* wantConstant.ShowMode.
* -ohos.dlp.params.sandbox: available only for DLP files. This key is involved only in system applications.
* -ohos.dlp.params.bundleName: bundle name of DLP. The value is a string. This key is involved only in system
* applications.
* -ohos.dlp.params.moduleName: module name of DLP. The value is a string. This key is involved only in system
* applications.
* -ohos.dlp.params.abilityName: ability name of DLP. The value is a string. This key is involved only in system
* applications.
* -ohos.dlp.params.index: DLP index. The value is a number. This key is involved only in system applications.
* -ohos.ability.params.asssertFaultSessionId: session ID of the fault assertion. The value is a string. This key
* is involved only in system applications.
*
*
2. The following keys are defined by the system, and their values need to be manually assigned.
* -ability.params.stream: File URIs to be authorized to the target ability. The value is a file URI array of the
* string type.
* -ohos.extra.param.key.appCloneIndex: index of the application clone.
*
*
3. In addition to the foregoing cases, applications may further agree on the key-value pairs to transfer.
*
**NOTE**:
*
For details about the constants of Params in want, see wantConstant.
*
Note that a maximum of 200 KB data that can be transferred by using WantParams. If the data volume exceeds
* 200 KB, transfer data in WriteRawDataBuffer or uri mode.
*
The values of parameters must be of the following basic data types: String, Number, Boolean, Object,
* undefined, and null. Functions in an object cannot be transferred.
*
**NOTE**:
*
If the ability belongs to a HAR module, moduleName must be set to the name of the HAP or HSP module that
* depends on this HAR.
*