harmony 鸿蒙@ohos.app.ability.wantAgent (WantAgent)
@ohos.app.ability.wantAgent (WantAgent)
app.ability.WantAgent is a class that encapsulates a Want object and allows the application to execute the Want at a future time point. The module provides APIs for creating and comparing WantAgent objects, and obtaining the user ID and bundle name of a WantAgent object.
A typical use scenario of WantAgent is notification processing. For example, when a user touches a notification, the trigger API of WantAgent is triggered and the target application is started. For details, see Notification. You are advised to use this module, since it will replace the @ohos.wantAgent module in the near future.
NOTE
The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
Modules to Import
import { wantAgent } from '@kit.AbilityKit';
wantAgent.getWantAgent
getWantAgent(info: WantAgentInfo, callback: AsyncCallback<WantAgent>): void
Obtains a WantAgent object. This API uses an asynchronous callback to return the result. If the creation fails, a null WantAgent object is returned.
Third-party applications can set only their own abilities.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
info | WantAgentInfo | Yes | Information about the WantAgent object to obtain. |
callback | AsyncCallback<WantAgent> | Yes | Callback used to return the WantAgent object. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
16000007 | Service busy. There are concurrent tasks. Try again later. |
16000151 | Invalid wantagent object. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgentData: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.error(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
} else {
wantAgentData = data;
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch (err) {
console.error(`getWantAgent failed, error: ${JSON.stringify(err)}`);
}
wantAgent.getWantAgent
getWantAgent(info: WantAgentInfo): Promise<WantAgent>
Obtains a WantAgent object. This API uses a promise to return the result. If the creation fails, a null WantAgent object is returned.
Third-party applications can set only their own abilities.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
info | WantAgentInfo | Yes | Information about the WantAgent object to obtain. |
Return value
Type | Description |
---|---|
Promise<WantAgent> | Promise used to return the WantAgent object. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
16000007 | Service busy. There are concurrent tasks. Try again later. |
16000151 | Invalid wantagent object. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
let wantAgentData: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
try {
wantAgent.getWantAgent(wantAgentInfo).then((data) => {
wantAgentData = data;
}).catch((err: BusinessError) => {
console.error(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
});
} catch (err) {
console.error(`getWantAgent failed! ${err.code} ${err.message}`);
}
wantAgent.getBundleName
getBundleName(agent: WantAgent, callback: AsyncCallback<string>): void
Obtains the bundle name of a WantAgent object. This API uses an asynchronous callback to return the result.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
agent | WantAgent | Yes | Target WantAgent object. |
callback | AsyncCallback<string> | Yes | Callback used to return the bundle name. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
16000007 | Service busy. There are concurrent tasks. Try again later. |
16000151 | Invalid wantagent object. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgentData: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.error(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
} else {
wantAgentData = data;
}
// getBundleName callback
let getBundleNameCallback = (err: BusinessError, data: string) => {
if (err) {
console.error(`getBundleName failed! ${err.code} ${err.message}`);
} else {
console.info(`getBundleName ok! ${JSON.stringify(data)}`);
}
}
try {
wantAgent.getBundleName(wantAgentData, getBundleNameCallback);
} catch (err) {
console.error(`getBundleName failed! ${err.code} ${err.message}`);
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch (err) {
console.error(`getWantAgent failed! ${err.code} ${err.message}`);
}
wantAgent.getBundleName
getBundleName(agent: WantAgent): Promise<string>
Obtains the bundle name of a WantAgent object. This API uses a promise to return the result.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
agent | WantAgent | Yes | Target WantAgent object. |
Return value
Type | Description |
---|---|
Promise<string> | Promise used to return the bundle name. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
16000007 | Service busy. There are concurrent tasks. Try again later. |
16000151 | Invalid wantagent object. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgentData: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.error(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
} else {
wantAgentData = data;
}
try {
wantAgent.getBundleName(wantAgentData).then((data)=>{
console.info(`getBundleName ok! ${JSON.stringify(data)}`);
}).catch((err: BusinessError)=>{
console.error(`getBundleName failed! ${err.code} ${err.message}`);
});
} catch(err){
console.error(`getBundleName failed! ${err.code} ${err.message}`);
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
console.error(`getWantAgent failed! ${err.code} ${err.message}`);
}
wantAgent.getUid
getUid(agent: WantAgent, callback: AsyncCallback<number>): void
Obtains the user ID of a WantAgent object. This API uses an asynchronous callback to return the result.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
agent | WantAgent | Yes | Target WantAgent object. |
callback | AsyncCallback<number> | Yes | Callback used to return the user ID. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
16000007 | Service busy. There are concurrent tasks. Try again later. |
16000151 | Invalid wantagent object. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgentData: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.info(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
} else {
wantAgentData = data;
}
// getUid callback
let getUidCallback = (err: BusinessError, data: number) => {
if (err) {
console.error(`getUid failed! ${err.code} ${err.message}`);
} else {
console.info(`getUid ok! ${JSON.stringify(data)}`);
}
}
try {
wantAgent.getUid(wantAgentData, getUidCallback);
} catch (err) {
console.error(`getUid failed! ${err.code} ${err.message}`);
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch (err) {
console.error(`getWantAgent failed! ${err.code} ${err.message}`);
}
wantAgent.getUid
getUid(agent: WantAgent): Promise<number>
Obtains the user ID of a WantAgent object. This API uses a promise to return the result.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
agent | WantAgent | Yes | Target WantAgent object. |
Return value
Type | Description |
---|---|
Promise<number> | Promise used to return the user ID. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
16000007 | Service busy. There are concurrent tasks. Try again later. |
16000151 | Invalid wantagent object. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgentData: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.info(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
} else {
wantAgentData = data;
}
try {
wantAgent.getUid(wantAgentData).then((data) => {
console.info(`getUid ok! ${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
console.error(`getUid failed! ${err.code} ${err.message}`);
});
} catch (err) {
console.error(`getUid failed! ${err.code} ${err.message}`);
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch (err) {
console.error(`getWantAgent failed! ${err.code} ${err.message}`);
}
wantAgent.cancel
cancel(agent: WantAgent, callback: AsyncCallback<void>): void
Cancels a WantAgent object. This API uses an asynchronous callback to return the result.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
agent | WantAgent | Yes | Target WantAgent object. |
callback | AsyncCallback<void> | Yes | Callback used to return the result. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
16000007 | Service busy. There are concurrent tasks. Try again later. |
16000151 | Invalid wantagent object. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgentData: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.info(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
} else {
wantAgentData = data;
}
// cancel callback
let cancelCallback = (err: BusinessError, data: void) => {
if (err) {
console.error(`cancel failed! ${err.code} ${err.message}`);
} else {
console.info(`cancel ok!`);
}
}
try {
wantAgent.cancel(wantAgentData, cancelCallback);
} catch (err) {
console.error(`cancel failed! ${err.code} ${err.message}`);
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch (err) {
console.error(`getWantAgent failed! ${(err as BusinessError).code} ${(err as BusinessError).message}`);
}
wantAgent.cancel
cancel(agent: WantAgent): Promise<void>
Cancels a WantAgent object. This API uses a promise to return the result.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
agent | WantAgent | Yes | Target WantAgent object. |
Return value
Type | Description |
---|---|
Promise<void> | Promise used to return the result. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
16000007 | Service busy. There are concurrent tasks. Try again later. |
16000151 | Invalid wantagent object. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgentData: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.info(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
} else {
wantAgentData = data;
}
try {
wantAgent.cancel(wantAgentData).then((data) => {
console.info('cancel ok!');
}).catch((err: BusinessError) => {
console.error(`cancel failed! ${err.code} ${err.message}`);
});
} catch (err) {
console.error(`cancel failed! ${err.code} ${err.message}`);
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch (err) {
console.error(`getWantAgent failed! ${(err as BusinessError).code} ${(err as BusinessError).message}`);
}
wantAgent.trigger
trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: AsyncCallback<CompleteData>): void
Proactively triggers a WantAgent object. This API uses an asynchronous callback to return the result.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
agent | WantAgent | Yes | Target WantAgent object. |
triggerInfo | TriggerInfo | Yes | TriggerInfo object. |
callback | AsyncCallback<CompleteData> | No | Callback used to return the result. |
Error codes
For details about the error codes, see Universal Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgentData: WantAgent;
// triggerInfo
let triggerInfo: wantAgent.TriggerInfo = {
code: 0 // Custom result code.
};
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.info(`getWantAgent failed, code: ${err.code}, message: ${err.message}`);
} else {
wantAgentData = data;
}
// trigger callback
let triggerCallback = (err: BusinessError, data: wantAgent.CompleteData) => {
if (err) {
console.error(`trigger failed, code: ${err.code}, message: ${err.message}`);
} else {
console.info(`trigger success, data: ${JSON.stringify(data)}`);
}
}
try {
wantAgent.trigger(wantAgentData, triggerInfo, triggerCallback);
} catch (err) {
let code = (err as BusinessError).code;
let msg = (err as BusinessError).message;
console.error(`trigger failed, code: ${code}, message: ${msg}.`);
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch (err) {
let code = (err as BusinessError).code;
let msg = (err as BusinessError).message;
console.error(`getWantAgent failed, code: ${code}, message: ${msg}.`);
}
wantAgent.equal
equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback<boolean>): void
Checks whether two WantAgent objects are equal, so as to determine whether the same operation is from the same application. This API uses an asynchronous callback to return the result.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
agent | WantAgent | Yes | The first WantAgent object. |
otherAgent | WantAgent | Yes | The second WantAgent object. |
callback | AsyncCallback<boolean> | Yes | Callback used to return the result. The value true means that the two WantAgent objects are equal, and false means the opposite. |
Error codes
For details about the error codes, see Universal Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgent1: WantAgent;
let wantAgent2: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.error(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
} else {
wantAgent1 = data;
wantAgent2 = data;
}
// equal callback
let equalCallback = (err: BusinessError, data: boolean) => {
if (err) {
console.error(`equal failed! ${err.code} ${err.message}`);
} else {
console.info(`equal ok! ${JSON.stringify(data)}`);
}
}
try {
wantAgent.equal(wantAgent1, wantAgent2, equalCallback);
} catch (err) {
console.error(`equal failed! ${(err as BusinessError).code} ${(err as BusinessError).message}`);
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch (err) {
console.error(`getWantAgent failed! ${(err as BusinessError).code} ${(err as BusinessError).message}`);
}
wantAgent.equal
equal(agent: WantAgent, otherAgent: WantAgent): Promise<boolean>
Checks whether two WantAgent objects are equal, so as to determine whether the same operation is from the same application. This API uses a promise to return the result.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
agent | WantAgent | Yes | The first WantAgent object. |
otherAgent | WantAgent | Yes | The second WantAgent object. |
Return value
Type | Description |
---|---|
Promise<boolean> | Promise used to return the result. The value true means that the two WantAgent objects are equal, and false means the opposite. |
Error codes
For details about the error codes, see Universal Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgent1: WantAgent;
let wantAgent2: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.error(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
} else {
wantAgent1 = data;
wantAgent2 = data;
}
try {
wantAgent.equal(wantAgent1, wantAgent2).then((data) => {
console.info(`equal ok! ${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
console.error(`equal failed! ${err.code} ${err.message}`);
})
} catch (err) {
console.error(`equal failed! ${(err as BusinessError).code} ${(err as BusinessError).message}`);
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch (err) {
console.error(`getWantAgent failed! ${(err as BusinessError).code} ${(err as BusinessError).message}`);
}
wantAgent.getOperationType
getOperationType(agent: WantAgent, callback: AsyncCallback<number>): void
Obtains the operation type of a WantAgent object. This API uses an asynchronous callback to return the result.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
agent | WantAgent | Yes | Target WantAgent object. |
callback | AsyncCallback<number> | Yes | Callback used to return the operation type. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
16000007 | Service busy. There are concurrent tasks. Try again later. |
16000015 | Service timeout. |
16000151 | Invalid wantagent object. |
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgentData: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.error(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
} else {
wantAgentData = data;
}
// getOperationTypeCallback callback
let getOperationTypeCallback = (err: BusinessError, data: number) => {
if (err) {
console.error(`getOperationType failed! ${err.code} ${err.message}`);
} else {
console.info(`getOperationType ok! ${JSON.stringify(data)}`);
}
}
try {
wantAgent.getOperationType(wantAgentData, getOperationTypeCallback);
} catch (err) {
console.error(`getOperationTypeCallback failed! ${(err as BusinessError).code} ${(err as BusinessError).message}`);
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch (err) {
console.error(`getWantAgent failed! ${(err as BusinessError).code} ${(err as BusinessError).message}`);
}
wantAgent.getOperationType
getOperationType(agent: WantAgent): Promise<number>
Obtains the operation type of a WantAgent object. This API uses a promise to return the result.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
agent | WantAgent | Yes | Target WantAgent object. |
Return value
Type | Description |
---|---|
Promise<number> | Promise used to return the operation type. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
16000007 | Service busy. There are concurrent tasks. Try again later. |
16000015 | Service timeout. |
16000151 | Invalid wantagent object. |
For details about the error codes, see Ability Error Codes.
Example
import { wantAgent, Want } from '@kit.AbilityKit';
import type { WantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
// WantAgent object
let wantAgentData: WantAgent;
// WantAgentInfo object
let wantAgentInfo: wantAgent.WantAgentInfo = {
wants: [
{
deviceId: 'deviceId',
bundleName: 'com.example.myapplication',
abilityName: 'EntryAbility',
action: 'action1',
entities: ['entity1'],
type: 'MIMETYPE',
uri: 'key={true,true,false}',
parameters:
{
mykey0: 2222,
mykey1: [1, 2, 3],
mykey2: '[1, 2, 3]',
mykey3: 'ssssssssssssssssssssssssss',
mykey4: [false, true, false],
mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'],
mykey6: true,
}
} as Want
],
actionType: wantAgent.OperationType.START_ABILITY,
requestCode: 0,
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
// getWantAgent callback
function getWantAgentCallback(err: BusinessError, data: WantAgent) {
if (err) {
console.error(`getWantAgent failed, code: ${JSON.stringify(err.code)}, message: ${JSON.stringify(err.message)}`);
} else {
wantAgentData = data;
}
try {
wantAgent.getOperationType(wantAgentData).then((data) => {
console.info(`getOperationType ok! ${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
console.error(`getOperationType failed! ${err.code} ${err.message}`);
});
} catch (err) {
console.error(`getOperationType failed! ${(err as BusinessError).code} ${(err as BusinessError).message}`);
}
}
try {
wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch (err) {
console.error(`getWantAgent failed! ${(err as BusinessError).code} ${(err as BusinessError).message}`);
}
WantAgentFlags
Enumerates the flags used by the WantAgent objects.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Name | Value | Description |
---|---|---|
ONE_TIME_FLAG | 0 | The WantAgent object can be used only once. |
NO_BUILD_FLAG | 1 | The WantAgent object does not exist and hence it is not created. In this case, null is returned. |
CANCEL_PRESENT_FLAG | 2 | The existing WantAgent object should be canceled before a new object is generated. |
UPDATE_PRESENT_FLAG | 3 | Extra information of the existing WantAgent object is replaced with that of the new object. |
CONSTANT_FLAG | 4 | The WantAgent object is immutable. |
REPLACE_ELEMENT | 5 | The element property in the current Want can be replaced by the element property in the Want passed in WantAgent.trigger(). This processing is not supported yet. |
REPLACE_ACTION | 6 | The action property in the current Want can be replaced by the action property in the Want passed in WantAgent.trigger(). This processing is not supported yet. |
REPLACE_URI | 7 | The uri property in the current Want can be replaced by the uri property in the Want passed in WantAgent.trigger(). This processing is not supported yet. |
REPLACE_ENTITIES | 8 | The entities property in the current Want can be replaced by the entities property in the Want passed in WantAgent.trigger(). This processing is not supported yet. |
REPLACE_BUNDLE | 9 | The bundleName property in the current Want can be replaced by the bundleName property in the Want passed in WantAgent.trigger(). This processing is not supported yet. |
OperationType
Enumerates the operation types of the WantAgent objects.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Name | Value | Description |
---|---|---|
UNKNOWN_TYPE | 0 | Unknown operation type. |
START_ABILITY | 1 | Starts an ability with a UI. |
START_ABILITIES | 2 | Starts multiple abilities with a UI. |
START_SERVICE | 3 | Starts an ability without a UI (valid only in the FA model). |
SEND_COMMON_EVENT | 4 | Sends a common event. |
CompleteData
Describes the data returned by the operation of proactive triggering a WantAgent object.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Name | Type | Read-only | Optional | Description |
---|---|---|---|---|
info | WantAgent | No | No | WantAgent object that is triggered. |
want | Want | No | No | Existing Want that is triggered. |
finalCode | number | No | No | Request code that triggers the WantAgent object. |
finalData | string | No | No | Final data collected by the common event. |
extraInfo | Record<string, Object> | No | Yes | Extra information. |
TriggerInfo
type TriggerInfo = _TriggerInfo
Defines the TriggerInfo object.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Type | Description |
---|---|
_TriggerInfo | TriggerInfo object. |
WantAgentInfo
type WantAgentInfo = _WantAgentInfo
Defines the WantAgentInfo object.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Type | Description |
---|---|
_WantAgentInfo | WantAgentInfo object. |
WantAgent
type WantAgent = object
Target WantAgent object.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Type | Description |
---|---|
object | Target WantAgent object. |
你可能感兴趣的鸿蒙文章
harmony 鸿蒙AbilityAccessControl
harmony 鸿蒙OH_NativeBundle_ApplicationInfo
harmony 鸿蒙OH_NativeBundle_ElementName
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦