codecamp

公共事件发布

场景介绍

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

注意

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

接口说明

详细接口见接口文档

接口名

接口描述

publish(event: string, callback: AsyncCallback)

发布公共事件。

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

指定发布信息并发布公共事件。

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

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

  1. 导入CommonEvent模块。

    1. import commonEvent from '@ohos.commonEventManager';
  2. 传入需要发布的事件名称和回调函数,发布事件。

    1. // 发布公共事件
    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. })

发布携带信息的公共事件

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

  1. 导入CommonEvent模块。

    1. import commonEvent from '@ohos.commonEventManager';
  2. 传入需要发布的事件名称和回调函数,发布事件。

    1. // 公共事件相关信息
    2. let options = {
    3. code: 1, // 公共事件的初始代码
    4. data: "initial data", // 公共事件的初始数据
    5. }
  3. 传入需要发布的事件名称、需要发布的指定信息和回调函数,发布事件。

    1. // 发布公共事件
    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. })
取消动态订阅公共事件
线程模型概述
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录
HAR

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }