Skip to main content
OneSignal 的 Android 实时通知让您能够向单个通知发送实时更新,减少杂乱并提高参与度。这些通知保持持久性并动态更新其内容——非常适合体育比分、下载进度或事件跟踪。 要接收实时通知,Android 用户必须启用推送通知。

要求

  • 您的应用必须使用最新版本的 OneSignal SDK
  • Android 用户必须启用推送通知权限。

实时通知 vs. 标准推送

与每次发送新通知的常规推送通知不同,实时通知使用单个随时间更新的通知。更新通过使用相同 collapse_id创建消息 API 发送。

配置

1. 实现通知服务扩展

创建一个实现 INotificationServiceExtensionNotificationServiceExtension 类。此类拦截传入的通知并可以修改或覆盖它们。
有关更多详细信息,请参阅 Android 通知服务扩展
NotificationServiceExtention.kt

2. 将扩展添加到 Android 清单

3. 创建实时通知类型

实时通知类型指示要启动哪个实时通知。

定义键

实时通知通过 key 引用,它决定如何路由更新。
NotificationServiceExtention.kt

创建通知渠道

渠道定义通知的行为方式(声音、振动、外观)。您必须为实时通知类型创建渠道。我们建议:
  • 进度通知使用低重要性
  • 禁用徽章
  • 将声音和振动保持在最低限度
有关更多信息,请参阅 Android 通知渠道类别

设计实时通知

设计实时通知时,您可以灵活地为每种更新类型创建通知设计。您创建的每个设计都必须分配特定类型,允许实时通知的不同呈现。
NotificationServiceExtention.kt
设计考虑事项:
  • 小图标和主题色
  • 大图标
  • 大图片
  • 操作按钮
有关高级设计选项,请参阅 Android 自定义通知布局

4. 提取实时通知载荷

实时通知使用 additional_data 字段传递结构化内容。
NotificationServiceExtention.kt

实时通知架构

Example Live Notification Payload

5. 处理实时通知事件

每个实时通知都必须响应以下事件:
NotificationServiceExtention.kt

启动实时通知

当您准备启动实时通知时:
  • 设置 event_attributes 来初始化实时通知的静态数据。此数据在实时通知的生命周期内不会更改。
  • 设置 event_updates 数据来初始化实时通知的动态数据。这是在实时通知生命周期内可以且将会更改的数据。
  • 使用 collapse_id 确保每次更新都覆盖前一次。此 ID 应该对实时通知唯一,以确保后续更新反映在同一个通知中。
curl

更新实时通知

您可以随意多次更新实时通知,只要首先启动它。
  • 设置 event_updates 数据来初始化实时通知的动态数据。这是在实时通知生命周期内可以且将会更改的数据,并告知要用什么更新实时通知的内容。
示例 cURL 请求
curl

结束实时通知

示例 cURL 请求
curl

您已成功创建了实时通知!相关文档: