HarmonyOS如何自定义公共事件,实现appA与appB之间互相通信

HarmonyOS如何实现两个应用间通信。目前看只能使用公共事件。实测使用自定义公共事件,能发送事件,但是接收不到自定义的事件。应用常驻后台,需要给其他应用暴露一个查询接口。

HarmonyOS
2024-12-23 14:39:25
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

参考demo如下:

订阅方:

let subscriber: CommonEventManager.CommonEventSubscriber;
//订阅者信息
let subscribeInfo: CommonEventManager.CommonEventSubscribeInfo = {
  events: ['eventTest']
};

//订阅公共事件回调
function SubscribeCB(err: Base.BusinessError, data: CommonEventManager.CommonEventData) {
  publishNotification();
}

//创建订阅者回调
function createCB(err: Base.BusinessError, commonEventSubscriber: CommonEventManager.CommonEventSubscriber) {
  if (!err) {
    hilog.info(0xFF00, LOG_TAG, 'createSubscriber');
    subscriber = commonEventSubscriber;
    //订阅公共事件
    CommonEventManager.subscribe(subscriber, SubscribeCB);
  } else {
    hilog.error(0xFF00, LOG_TAG, `createSubscriber failed, code is ${err.code}, message is ${err.message}`);
  }
}

发布方:

// 公共事件相关信息
let options: CommonEventManager.CommonEventPublishData = {
  bundleName: 'com.example.mysubscriber', //表示订阅者包名称,只有包名为bundleName的订阅者才能收到该公共事件。
};
CommonEventManager.publish('eventTest', options, (err: Base.BusinessError) => {
  if (err) {
    //todo 模板字符串
    hilog.error(0xFF00, LOG_TAG, `PublishCallBack err = ${JSON.stringify(err)}`);
  } else {
    hilog.info(0xFF00, LOG_TAG, 'commonEvent Publish success');
  }
});
分享
微博
QQ
微信
回复
2024-12-23 16:45:35
相关问题
公共事件实现跨进程通信
1843浏览 • 1回复 待解决
HarmonyOS 多个HSP之间如何互相通
1389浏览 • 1回复 待解决
请问鸿蒙和OH支持软总线互相通信
4620浏览 • 0回复 待解决
公共事件有哪些简单使用
2002浏览 • 1回复 待解决
用户订阅系统公共事件
2375浏览 • 1回复 待解决
如何公共事件发布给其他设备
5188浏览 • 1回复 待解决
如何实现H5自定义事件
3818浏览 • 1回复 待解决
公共事件的生命周期是怎样的
2579浏览 • 1回复 待解决