跳转到主要内容

概述

静默通知可让您唤醒应用并执行后台任务(如同步或刷新数据),而无需显示可见消息或播放声音。 在 iOS 上,这些被称为后台通知,在 Android 上,它们被称为数据通知。它们统称为静默推送,行为与普通的可见通知不同。 本指南说明如何在支持的平台上使用 OneSignal 配置和发送静默通知。

限制

静默通知的行为与普通推送消息不同,并且具有多个平台特定的限制。
  • 应用无法接收静默推送,如果:
    • iOS:应用已被用户关闭,例如从应用切换器中滑动删除时。(参见 Apple 支持)。
    • Android:应用已通过设备设置强制退出,或被某些制造商在滑动删除时自动关闭。(更多详情)。
  • 无法保证送达
    • Apple 和 Google 都将静默通知视为尽力而为。iOS 可能在低电量模式下、关闭后台应用刷新或应用被用户关闭时延迟或丢弃送达。Android 可能在 Doze 或 OEM 省电规则下限制或批量送达。
    • 因此,静默通知绝不应用于关键更新
  • 仅限订阅用户:OneSignal SDK 仅向订阅的订阅发送数据通知。要触达未订阅用户,请遵循此解决方案
  • 对跨平台 SDK 的有限支持

从 OneSignal 发送静默通知

按照以下步骤从 OneSignal 发送静默通知:
1

省略可见内容

从消息中移除任何可见文本或标题。这包括:
  • API:您的 Create notification API 请求中的 contentsheadingssubtitle
  • 控制台:消息、标题、副标题
2

设置 content_available

  • API:将 content_available 设置为 true
  • 控制台:在”发送到 Apple iOS”下勾选 Content available。这适用于所有平台,只是告诉我们的系统没有发送消息。
3

向通知添加数据

  • API:使用 data 参数。
  • 控制台:使用 Additional Data 字段。

平台特定设置

iOS 后台通知设置

要处理后台通知,您的 iOS 应用必须在 Xcode 中启用 Background Modes > Remote Notifications 功能。如果您按照我们的移动 SDK 设置操作,通常会包含此功能。 Apple 文档:
如果用户关闭了应用(从应用切换器中滑动删除),iOS 将不会送达通知。在这种情况下,请包含可见的 contents 消息,并在 UNNotificationServiceExtension.didReceive 中处理数据。

Android 数据通知设置

使用通知服务扩展在 Android 上处理数据通知。 这可以实现:
  • 只要应用未被强制关闭,就可以处理通知
  • 自定义通知的显示或抑制方式

发送 VoIP 通知

支持 VoIP 通知,但需要在标准 OneSignal SDK 之外进行额外配置。OneSignal 不会自动注册 VoIP 令牌。 有关设置说明,请参阅 VoIP 通知设置指南

常见问题

静默通知能否用于检测卸载或取消订阅?

从技术上讲可以,但不可靠。如上面限制部分所述,无法保证静默通知的送达。 相反:
  • 每月至少向所有用户发送一次可见通知(包含内容)。
  • 可选择发送静默通知作为补充检查。
有关处理订阅状态更改的更多详细信息,请参阅我们的订阅指南。

确认送达是否适用于静默通知?

确认送达不适用于静默通知。