公共事件發(fā)布

2024-01-25 12:28 更新

場(chǎng)景介紹

當(dāng)需要發(fā)布某個(gè)自定義公共事件時(shí),可以通過publish()方法發(fā)布事件。發(fā)布的公共事件可以攜帶數(shù)據(jù),供訂閱者解析并進(jìn)行下一步處理。

注意

已發(fā)出的粘性公共事件后來訂閱者也可以接收到,其他公共事件都需要先訂閱再接收,訂閱參考公共事件訂閱章節(jié)。

接口說明

詳細(xì)接口見接口文檔

接口名

接口描述

publish(event: string, callback: AsyncCallback)

發(fā)布公共事件。

publish(event: string, options: CommonEventPublishData, callback: AsyncCallback)

指定發(fā)布信息并發(fā)布公共事件。

發(fā)布不攜帶信息的公共事件

不攜帶信息的公共事件,只能發(fā)布無序公共事件。

  1. 導(dǎo)入CommonEvent模塊。

    1. import commonEvent from '@ohos.commonEventManager';
  2. 傳入需要發(fā)布的事件名稱和回調(diào)函數(shù),發(fā)布事件。

    1. // 發(fā)布公共事件
    2. commonEvent.publish("usual.event.SCREEN_OFF", (err) => {
    3. if (err) {
    4. console.error(`[CommonEvent] PublishCallBack err=${JSON.stringify(err)}`);
    5. } else {
    6. console.info(`[CommonEvent] Publish success`);
    7. }
    8. })

發(fā)布攜帶信息的公共事件

攜帶信息的公共事件,可以發(fā)布為無序公共事件、有序公共事件和粘性事件,可以通過參數(shù)CommonEventPublishData的isOrdered、isSticky的字段進(jìn)行設(shè)置。

  1. 導(dǎo)入CommonEvent模塊。

    1. import commonEvent from '@ohos.commonEventManager';
  2. 傳入需要發(fā)布的事件名稱和回調(diào)函數(shù),發(fā)布事件。

    1. // 公共事件相關(guān)信息
    2. let options = {
    3. code: 1, // 公共事件的初始代碼
    4. data: "initial data", // 公共事件的初始數(shù)據(jù)
    5. }
  3. 傳入需要發(fā)布的事件名稱、需要發(fā)布的指定信息和回調(diào)函數(shù),發(fā)布事件。

    1. // 發(fā)布公共事件
    2. commonEventManager.publish("custom_event", options, (err) => {
    3. if (err) {
    4. console.error('[CommonEvent] PublishCallBack err=' + JSON.stringify(err));
    5. } else {
    6. console.info('[CommonEvent] Publish success')
    7. }
    8. })
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)