OSNotification 类表示 OneSignal SDK 中的推送通知载荷。在应用中处理通知时,可使用它访问通知标题、正文、自定义数据和平台特定属性。
推送通知载荷限制为
4096 字节。为防止截断,请将载荷保持在 3500 字节以下。additionalData 字段限制为 2048 字节。在您的应用中访问 OSNotification
所有 OneSignal SDK 都提供一个通知事件监听器,返回一个 OSNotification 对象:
Android 字段
iOS 字段
OSNotificationAction(点击事件)
描述用户与通知的交互。
自定义 OneSignal 载荷结构
所有 OneSignal 通知在载荷中都包含一个特殊的"custom" 对象:
此键是 OneSignal SDK 处理通知所必需的。如果缺少,通知将不会触发点击事件或分析。如果您从其他服务向同时使用 OneSignal 的设备发送推送,请通过此键进行过滤以防止重复处理。详见推送载荷处理。
将 additionalData 移至 APNS 根目录
对于 iOS 应用,您可以将additionalData 字段放置在 APNS 载荷的根目录中,而非 custom 字典内部。这样可以简化在自定义通知处理程序中的访问方式。
1. 通过 API 启用
使用更新应用 API并设置:
data 的推送
data 字段将出现在 APNS 根载荷中:
promo_code,无需检查 custom 字典。
恢复的通知(Android)
Android SDK 会在设备重启或应用重启后恢复通知。推送令牌格式
- iOS Push (APNS):64 个字符,仅限十六进制(0-9, a-f)。
deviceToken.map {String(format: "%02x", $0)}.joined() - Android Push (FCM):通常为 163 个字符,字母数字,可能包含连字符、冒号和下划线。
常见问题
最大载荷大小是多少?
推送通知载荷总计限制为 4096 字节。additionalData 字段限制为 2048 字节。为避免截断,请将总载荷保持在 3500 字节以下。
如何在原始载荷中识别 OneSignal 通知?
所有 OneSignal 通知都包含一个"custom" 对象,其中有一个包含通知 ID 的 "i" 键。通过检查此键可将 OneSignal 通知与其他提供商发送的通知区分开来。
是否可以在 APNS 根载荷中访问 additionalData?
可以。通过更新应用 API 启用additional_data_is_root_payload,即可将 additionalData 字段放置在 APNS 根目录中,而非 custom 字典内部。详见将 additionalData 移至 APNS 根目录。
Android 通知类别
为 Android 8.0+ 设备配置通知渠道。
移动服务扩展
添加富媒体、徽章和已确认送达跟踪。
移动 SDK 参考
OneSignal 移动 SDK 方法和监听器的完整参考。