HarmonyOS EmitterData在接收端如何解析?

发送的emitter代码如下:

let eventData: emitter.EventData = { 
  data: { 
    isHot: false, 
    NewsID: this.videoPlayerModel.videoData.NewsID 
  } 
}; 
emitter.emit(EventKeys.EVENT_CHANGE_HOT, eventData)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

在接收端如何解析这个eventData呢?接收端代码:

let callback = (eventData: emitter.EventData): void => { 
  eventData.data 
  LogUtils.info('event callback:' + JSON.stringify(eventData)); 
}; 
emitter.on(EventKeys.EVENT_CHANGE_HOT,callback)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

打印:event callback:{“data”:{“isHot”:false,“NewsID”:102097848}},请问下最简单的解析方法是什么?

HarmonyOS
2024-09-06 11:25:45
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

可参考emitter的开发步骤https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/itc-with-emitter-V5

如下demo获取到eventdata中的数据。

import emitter from '@ohos.events.emitter' 
 
function registerEvent() { // 定义一个eventId为1的事件  
  let event: emitter.InnerEvent = { eventId: 1 }; // 收到eventId为1的事件后执行该回调  
  let callback = (eventData: emitter.EventData) => { 
  let content: emitter.EventData = eventData["content"] 
  let id: emitter.EventData = eventData["id"] 
  let isEmpty: emitter.EventData = eventData["isEmpty"] 
  console.info('event callback content=' + content); 
  }; // 订阅eventId为1的事件  
  emitter.on(event, callback); 
} 
function sendEvent() { // 定义一个eventId为1的事件,事件优先级为 
Low let event: emitter.InnerEvent = { eventId: 1, priority: emitter.EventPriority.LOW };  
let data = new Map<string, Object>();  
data.set("content", "c");  
data.set("id", 1);  
data.set("isEmpty", false);  
let eventData: emitter.EventData = { data }; // 发送eventId为1的事件,事件内容为eventData emitter.emit(event, eventData); } @Entry  
@Component  
struct Index  
{  
@State message: string = 'Hello World' build() {  
Row() {  
Column() {  
Text("发送")  
.fontSize(50)  
.fontWeight(FontWeight.Bold)  
.onClick(()=> { sendEvent(); })  
Text("注册")  
.fontSize(50)  
.fontWeight(FontWeight.Bold)  
.onClick(()=> { registerEvent(); }) } 
.width('100%') 
} 
.height('100%') 
} 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
分享
微博
QQ
微信
回复
2024-09-06 15:16:43


相关问题
HarmonyOS 如何解析xml文件
782浏览 • 1回复 待解决
HarmonyOS 如何解析zip文件
640浏览 • 1回复 待解决
HarmonyOS 如何解析证书文件
871浏览 • 1回复 待解决
HarmonyOS 如何解析HTML文本
1377浏览 • 1回复 待解决
HarmonyOS emitterdata丢失问题
579浏览 • 1回复 待解决
HarmonyOS 通知扩展消息代码如何接收
1067浏览 • 1回复 待解决
HarmonyOS 如何解析json字符串?
1891浏览 • 1回复 待解决
如何解析JSON字符串?
2233浏览 • 1回复 待解决
鸿蒙JS开发HTTP请求如何解析
3649浏览 • 0回复 待解决
HarmonyOS 服务JSON字符串解析问题
1244浏览 • 1回复 待解决
ts给c++传递数组,c++层如何解析
2763浏览 • 1回复 待解决