notification_notification_cangjie_wrapper:基于 OpenHarmony 的公共事件管理仓颉封装项目

事件通知子系统仓颉封装层

分支49Tags2
文件最后提交记录最后更新时间
9 个月前
5 个月前
5 个月前
3 个月前
7 个月前
11 个月前
11 个月前
9 个月前
9 个月前
7 个月前

事件通知仓颉封装(beta特性)

简介

事件通知仓颉封装是在OpenHarmony上面向开发者使用仓颉语言进行应用开发时提供公共事件管理能力。OpenHarmony通过CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力。当前开放的事件通知仓颉封装仅支持standard设备。

公共事件可分为系统公共事件和自定义公共事件。

  • 系统公共事件:系统将收集到的事件信息,根据系统策略发送给订阅该事件的用户程序。 例如:系统关键服务发布的系统事件, hap安装,更新,卸载等。

  • 自定义公共事件:应用自定义一些公共事件用来实现跨应用的事件通信能力。

每个应用都可以按需订阅公共事件,若应用订阅成功且相应订阅的公共事件发布,系统会把其发送给应用。这些公共事件可能来自系统、其他应用和应用自身。

系统架构

图 1 事件通知仓颉封装架构图

事件通知仓颉封装架构图

如架构图所示:

接口层:

  • 公共事件管理:面向开发者提供公共事件管理能力,包括创建订阅者、订阅、取消订阅、发布公共事件等。
    • 创建订阅者:面向开发者提供根据订阅信息创建公共事件订阅者的接口能力,其中订阅信息可以指定订阅的公共事件,事件发布者需要具备的权限,以及设定订阅者的优先级等。
    • 订阅:面向开发者提供指定订阅者的订阅接口能力,用于获取所订阅公共事件的相关信息,及设定公共事件的处理信息。
    • 取消订阅:面向开发者提供指定订阅者的取消订阅接口能力。
    • 发布公共事件:面向开发者提供发布指定内容与属性的公共事件的接口能力。

框架层:

  • 公共事件管理封装:基于底层公共事件服务实现公共事件管理封装,包括创建订阅者、订阅、发布、退订公共事件的能力。

架构图中依赖部件引入说明:

  • 公共事件服务:公共事件管理封装的依赖公共事件服务。
  • hiviewdfx_cangjie_wrapper:公共事件管理封装依赖hiviewdfx_cangjie_wrapper提供的HiLog日志能力,用于在关键路径打印日志。
  • cangjie_ark_interop:公共事件管理封装依赖cangjie_ark_interop提供的仓颉注解类定义和BusinessException异常类定义,用于对API进行标注,及在错误分支向用户抛出异常。

目录

base/notification/notification_cangjie_wrapper
├── figures         # 存放README中的架构图
└── ohos            # 仓颉事件通知接口实现
│   ├── common_event_data           # 公共事件数据模块
│   ├── common_event_manager        # 公共事件管理模块
│   ├── common_event_publish_data   # 公共事件发布数据模块
│   ├── common_event_subscribe_info # 公共事件订阅信息模块
│   ├── common_event_subscriber     # 公共事件订阅者模块
│   └── value_type                  # 公共事件多值类型实现
└── test            # 测试用例
    └── common_event_manager # 公共事件测试用例

使用说明

当前事件通知仓颉封装提供以下功能:

  • 公共事件管理。

事件通知相关接口请参见公共事件API文档,相关开发指导请参见公共事件开发指南

约束

与ArkTS提供的API能力相比,暂不支持以下功能:

  • 用户通知服务。

参与贡献

欢迎广大开发者贡献代码、文档等,具体的贡献流程和方式请参见参与贡献

相关仓

arkcompiler_cangjie_ark_interop

hiviewdfx_hiviewdfx_cangjie_wrapper

notification_common_event_service