@ohos.commonEventManager (公共事件模块)
@ohos.commonEventManager (公共事件模块)
本模块提供了公共事件相关的能力,包括发布公共事件、订阅公共事件、以及退订公共事件。
说明:
本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import CommonEventManager from '@ohos.commonEventManager';
Support
系统公共事件是指由系统服务或系统应用发布的事件,订阅这些系统公共事件需要特定的权限。发布或订阅这些事件需要使用如下链接中的枚举定义。
全部系统公共事件枚举定义请参见系统公共事件定义。
CommonEventManager.publish
publish(event: string, callback: AsyncCallback
发布公共事件,并在发布后执行相应的回调函数。
系统能力: SystemCapability.Notification.CommonEvent
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | string | 是 | 表示要发送的公共事件。 |
callback | AsyncCallback<void> | 是 | 表示事件发布后将要执行的回调函数。 |
错误码:
错误码介绍请参考@ohos.commonEventManager(事件)
示例:
//发布公共事件回调
function publishCB(err) {
if (err) {
console.error(`publish failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("publish");
}
}
//发布公共事件
try {
CommonEventManager.publish("event", publishCB);
} catch(err) {
console.error(`publish failed, code is ${err.code}, message is ${err.message}`);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CommonEventManager.publish
publish(event: string, options: CommonEventPublishData, callback: AsyncCallback
以回调的形式发布公共事件。
**系统能力:**SystemCapability.Notification.CommonEvent
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | string | 是 | 表示要发布的公共事件。 |
options | CommonEventPublishData | 是 | 表示发布公共事件的属性。 |
callback | syncCallback<void> | 是 | 表示被指定的回调方法。 |
错误码:
错误码介绍请参考@ohos.commonEventManager(事件)
示例:
//公共事件相关信息
let options = {
code: 0, //公共事件的初始代码
data: "initial data",//公共事件的初始数据
isOrdered: true //有序公共事件
}
//发布公共事件回调
function publishCB(err) {
if (err) {
console.error(`publish failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("publish");
}
}
//发布公共事件
try {
CommonEventManager.publish("event", options, publishCB);
} catch (err) {
console.error(`publish failed, code is ${err.code}, message is ${err.message}`);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CommonEventManager.publishAsUser
publishAsUser(event: string, userId: number, callback: AsyncCallback
以回调的形式向指定用户发布公共事件。
系统能力: SystemCapability.Notification.CommonEvent
系统API:此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | string | 是 | 表示要发送的公共事件。 |
userId | number | 是 | 表示指定向该用户ID发送此公共事件。 |
callback | AsyncCallback<void> | 是 | 表示被指定的回调方法。 |
错误码:
错误码介绍请参考@ohos.commonEventManager(事件)
示例:
//发布公共事件回调
function publishCB(err) {
if (err) {
console.error(`publishAsUser failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("publishAsUser");
}
}
//指定发送的用户
let userId = 100;
//发布公共事件
try {
CommonEventManager.publishAsUser("event", userId, publishCB);
} catch (err) {
console.error(`publishAsUser failed, code is ${err.code}, message is ${err.message}`);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CommonEventManager.publishAsUser
publishAsUser(event: string, userId: number, options: CommonEventPublishData, callback: AsyncCallback
以回调形式向指定用户发布公共事件并指定发布信息。
系统能力: SystemCapability.Notification.CommonEvent
系统API:此接口为系统接口,三方应用不支持调用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | string | 是 | 表示要发布的公共事件。 |
userId | number | 是 | 表示指定向该用户ID发送此公共事件。 |
options | CommonEventPublishData | 是 | 表示发布公共事件的属性。 |
callback | AsyncCallback<void> | 是 | 表示被指定的回调方法。 |
错误码:
错误码介绍请参考@ohos.commonEventManager(事件)
示例:
//公共事件相关信息
let options = {
code: 0, //公共事件的初始代码
data: "initial data",//公共事件的初始数据
}
//发布公共事件回调
function publishCB(err) {
if (err) {
console.error(`publishAsUser failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("publishAsUser");
}
}
//指定发送的用户
let userId = 100;
//发布公共事件
try {
CommonEventManager.publishAsUser("event", userId, options, publishCB);
} catch (err) {
console.error(`publishAsUser failed, code is ${err.code}, message is ${err.message}`);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
CommonEventManager.createSubscriber
createSubscriber(subscribeInfo: CommonEventSubscribeInfo, callback: AsyncCallback
以回调形式创建订阅者。
系统能力: SystemCapability.Notification.CommonEvent
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
subscribeInfo | CommonEventSubscribeInfo | 是 | 表示订阅信息。 |
callback | AsyncCallback<CommonEventSubscriber> | 是 | 表示创建订阅者的回调方法。 |
示例:
let subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作
//订阅者信息
let subscribeInfo = {
events: ["event"]
};
//创建订阅者回调
function createCB(err, commonEventSubscriber) {
if(!err) {
console.info("createSubscriber");
subscriber = commonEventSubscriber;
} else {
console.error(`createSubscriber failed, code is ${err.code}, message is ${err.message}`);
}
}
//创建订阅者
try {
CommonEventManager.createSubscriber(subscribeInfo, createCB);
} catch (err) {
console.error(`createSubscriber failed, code is ${err.code}, message is ${err.message}`);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CommonEventManager.createSubscriber
createSubscriber(subscribeInfo: CommonEventSubscribeInfo): Promise
以Promise形式创建订阅者。
系统能力: SystemCapability.Notification.CommonEvent
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
subscribeInfo | CommonEventSubscribeInfo | 是 | 表示订阅信息。 |
返回值:
类型 | 说明 |
---|---|
Promise<CommonEventSubscriber> | 返回订阅者对象。 |
示例:
let subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作
//订阅者信息
let subscribeInfo = {
events: ["event"]
};
//创建订阅者
CommonEventManager.createSubscriber(subscribeInfo).then((commonEventSubscriber) => {
console.info("createSubscriber");
subscriber = commonEventSubscriber;
}).catch((err) => {
console.error(`createSubscriber failed, code is ${err.code}, message is ${err.message}`);
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CommonEventManager.subscribe
subscribe(subscriber: CommonEventSubscriber, callback: AsyncCallback
以回调形式订阅公共事件。
系统能力: SystemCapability.Notification.CommonEvent
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
subscriber | CommonEventSubscriber | 是 | 表示订阅者对象。 |
callback | AsyncCallback<CommonEventData> | 是 | 表示接收公共事件数据的回调函数。 |
示例:
//订阅者信息
let subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作
//订阅者信息
let subscribeInfo = {
events: ["event"]
};
//订阅公共事件回调
function SubscribeCB(err, data) {
if (err) {
console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("subscribe ");
}
}
//创建订阅者回调
function createCB(err, commonEventSubscriber) {
if(!err) {
console.info("createSubscriber");
subscriber = commonEventSubscriber;
//订阅公共事件
try {
CommonEventManager.subscribe(subscriber, SubscribeCB);
} catch (err) {
console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
}
} else {
console.error(`createSubscriber failed, code is ${err.code}, message is ${err.message}`);
}
}
//创建订阅者
try {
CommonEventManager.createSubscriber(subscribeInfo, createCB);
} catch (err) {
console.error(`createSubscriber failed, code is ${err.code}, message is ${err.message}`);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
CommonEventManager.unsubscribe
unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback
以回调形式取消订阅公共事件。
系统能力: SystemCapability.Notification.CommonEvent
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
subscriber | CommonEventSubscriber | 是 | 表示订阅者对象。 |
callback | AsyncCallback<void> | 否 | 表示取消订阅的回调方法。 |
示例:
let subscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作
//订阅者信息
let subscribeInfo = {
events: ["event"]
};
//订阅公共事件回调
function subscribeCB(err, data) {
if (err) {
console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("subscribe");
}
}
//创建订阅者回调
function createCB(err, commonEventSubscriber) {
if (err) {
console.error(`createSubscriber failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("createSubscriber");
subscriber = commonEventSubscriber;
//订阅公共事件
try {
CommonEventManager.subscribe(subscriber, subscribeCB);
} catch(err) {
console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
}
}
}
//取消订阅公共事件回调
function unsubscribeCB(err) {
if (err) {
console.error(`unsubscribe failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info("unsubscribe");
}
}
//创建订阅者
try {
CommonEventManager.createSubscriber(subscribeInfo, createCB);
} catch (err) {
console.error(`createSubscriber failed, code is ${err.code}, message is ${err.message}`);
}
//取消订阅公共事件
try {
CommonEventManager.unsubscribe(subscriber, unsubscribeCB);
} catch (err) {
console.error(`unsubscribe failed, code is ${err.code}, message is ${err.message}`);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
CommonEventManager.removeStickyCommonEvent10+
removeStickyCommonEvent(event: string, callback: AsyncCallback
以回调形式移除粘性公共事件。
系统能力: SystemCapability.Notification.CommonEvent
需要权限: ohos.permission.COMMONEVENT_STICKY
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | string | 是 | 表示被移除的粘性公共事件。 |
callback | AsyncCallback<void> | 是 | 表示移除粘性公共事件的回调方法。 |
示例:
CommonEventManager.removeStickyCommonEvent("sticky_event", (err) => {
if (err) {
console.info(`Remove sticky event AsyncCallback failed, errCode: ${err.code}, errMes: ${err.message}`);
return;
}
console.info(`Remove sticky event AsyncCallback success`);
}
});
2
3
4
5
6
7
8
CommonEventManager.removeStickyCommonEvent10+
removeStickyCommonEvent(event: string): Promise
以Promise形式移除粘性公共事件。
系统能力: SystemCapability.Notification.CommonEvent
需要权限: ohos.permission.COMMONEVENT_STICKY
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | string | 是 | 表示被移除的粘性公共事件。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 表示移除粘性公共事件的对象。 |
示例:
commonEventManager.removeStickyCommonEvent("sticky_event").then(() => {
console.info(`Remove sticky event AsyncCallback success`);
}).catch ((err) => {
console.info(`Remove sticky event AsyncCallback failed, errCode: ${err.code}, errMes: ${err.message}`);
});
2
3
4
5