harmony 鸿蒙公共事件发布

  • 2022-12-13
  • 浏览 (551)

公共事件发布

场景介绍

当需要发布某个自定义公共事件时,可以通过publish()方法发布事件。发布的公共事件可以携带数据,供订阅者解析并进行下一步处理。

须知: 已发出的粘性公共事件后来订阅者也可以接收到,其他公共事件都需要先订阅再接收,订阅参考公共事件订阅章节

接口说明

详细接口见接口文档

接口名 接口描述
publish(event: string, callback: AsyncCallback) 发布公共事件。
publish(event: string, options: CommonEventPublishData, callback: AsyncCallback) 指定发布信息并发布公共事件。

发布不携带信息的公共事件

不携带信息的公共事件,只能发布无序公共事件。

  1. 导入模块。
   import commonEventManager from '@ohos.commonEventManager';
   import Base from '@ohos.base';
  1. 传入需要发布的事件名称和回调函数,发布事件。
   // 发布公共事件
   commonEventManager.publish("usual.event.SCREEN_OFF", (err: Base.BusinessError) => {
       if (err) {
           console.error(`[CommonEvent] PublishCallBack err=${JSON.stringify(err)}`);
       } else {
           console.info(`[CommonEvent] Publish success`);
       }
   });

发布携带信息的公共事件

携带信息的公共事件,可以发布为无序公共事件、有序公共事件和粘性事件,可以通过参数CommonEventPublishData的isOrdered、isSticky的字段进行设置。

  1. 导入模块。
   import commonEventManager from '@ohos.commonEventManager';
   import Base from '@ohos.base';
  1. 传入需要发布的事件名称和回调函数,发布事件。
   // 公共事件相关信息
   let options: commonEventManager.CommonEventPublishData = {
       code: 1, // 公共事件的初始代码
       data: "initial data", // 公共事件的初始数据
   }
  1. 传入需要发布的事件名称、需要发布的指定信息和回调函数,发布事件。
   // 发布公共事件
   commonEventManager.publish("usual.event.SCREEN_OFF", options, (err: Base.BusinessError) => {
       if (err) {
           console.error('[CommonEvent] PublishCallBack err=' + JSON.stringify(err));
       } else {
           console.info('[CommonEvent] Publish success')
       }
   });

你可能感兴趣的鸿蒙文章

harmony 鸿蒙应用模型

harmony 鸿蒙使用显式Want启动应用组件

harmony 鸿蒙使用隐式Want打开网址

harmony 鸿蒙AbilityStage组件容器

harmony 鸿蒙访问DataAbility

harmony 鸿蒙FA模型访问Stage模型DataShareExtensionAbility

harmony 鸿蒙AccessibilityExtensionAbility

harmony 鸿蒙常见action与entities

harmony 鸿蒙API切换概述

harmony 鸿蒙app和deviceConfig的切换

0  赞