鸿蒙(4) eTS Emitter 进程内事件订阅通知组件的使用华

OpenHarmony eTS Emitter 进程内事件通知组件的使用

目录

1.能做什么

提供用于发送和处理进程内事件的方法。
样例中选取了一个选购商品的场景,在Index页面完成对商品选购事件的订阅,在Goods页面选择商品后完成对事件的通知,在Index页面对通知进行处理,通知的数据格式可自定义。

2.使用步骤

1).引用组件

import emitter from '@ohos.events.emitter';

复制

2).订阅事件

在aboutToAppear生命周期函数完成订阅,绑定自定义回调处理函数onEventHandel

aboutToAppear() {
    //定义事件ID
    var innerEvent = { eventId: 1001 }
    //以持久化方式订阅某个事件并接收事件回调。bind处理函数
    emitter.on(innerEvent, this.onEventHandel.bind(this))
}
//处理事件
onEventHandel(eventData) {
    logger.getInstance(this).debug(`eventData= ${eventData}`)
    let noticeType = eventData.data.noticeType
    logger.getInstance(this).debug(`noticeType:${noticeType}`)
    //物业通知
    if (noticeType === 1) {
      this.nCounts = this.nCounts + 1
      this.notice = eventData.data
      logger.getInstance(this).debug(`this.notice:${JSON.stringify(this.notice)}`)
    }
}

复制

3)事件通知

  sendEventTest() {
    var innerEvent = { eventId: 1001 }
    var eventData = {
      data: {
        "nIndex": 1001,
        "noticeType": 1,
        "noticeContent": "this is a notice"
      }
    }
    logger.getInstance(this).debug(`emitter send eventData.data= ${JSON.stringify(eventData.data)}`)
    //发布事件
    emitter.emit(innerEvent, eventData)
  }

复制

当每次发布事件时,都会触发onEventHandel函数对事件进行处理,业务处理可以是数据的累计,也可以时消息的及时通知。

3.Emitter组件Gitee地址

https://gitee.com/openharmony/app_samples/tree/master/Notification/Emitter

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容