OpenHarmony之 eTS Emitter 进程内事件订阅通知组件的使用 精华
Buty9147
发布于 2022-5-21 22:17
浏览
2收藏
OpenHarmony eTS Emitter 进程内事件通知组件的使用
@toc
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
效果:
标签
已于2022-5-22 10:41:33修改
赞
3
收藏 2
回复
相关推荐
get到了新知识!
请问有测试过在SA,服务中使用emitter发送事件吗?
是遇到什么问题了吗
我有个业务场景,在SA上收到客户端请求的业务数据后,在页面上显示客户端的业务数据内容,这个是在分布式场景下,跨设备。
使用公共事件解决了,谢谢。