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

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

HarmonyOS
3天前
浏览
收藏 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
微信
回复
3天前
相关问题
公共事件实现跨进程通信
899浏览 • 1回复 待解决
HarmonyOS 多个HSP之间如何互相通
471浏览 • 1回复 待解决
公共事件有哪些简单使用
978浏览 • 1回复 待解决
请问鸿蒙和OH支持软总线互相通信
3149浏览 • 0回复 待解决
用户订阅系统公共事件
1141浏览 • 1回复 待解决
如何公共事件发布给其他设备
4317浏览 • 1回复 待解决
如何实现H5自定义事件
2381浏览 • 1回复 待解决
公共事件的生命周期是怎样的
1594浏览 • 1回复 待解决
HarmonyOS 如何实现自定义Toast
33浏览 • 1回复 待解决
HarmonyOS如何实现自定义scheme?
62浏览 • 1回复 待解决