• Apple 确认了 iOS 17 中导致重复的错误。此问题已在 iOS 17.3 中修复。了解更多。
• 如果您使用的是 OneSignal Android SDK 版本 4.4.1 – 4.6.2,请更新到最新版本以避免已知问题。
多次发送相同消息
重复通知的最常见原因是通过 OneSignal API 多次发送相同的通知载荷。常见原因:
- 您的服务器重试请求而不检查第一次是否成功。
- 后端通知管道中意外的逻辑重复。
- 您正在迁移到 OneSignal 但仍从之前的提供商发送通知。避免同时从两个系统发送。
多个推送通知 SDK
检查您的应用是否包含其他推送通知 SDK(例如 Firebase、Urban Airship)。这些可能也会处理和显示 OneSignal 通知。- OneSignal 包含逻辑以在它是唯一 SDK 时避免重复。
- 其他 SDK 可能无法识别和过滤 OneSignal 的载荷,导致多次显示。
多个应用实例
- Android
- iOS
- Web 推送
诊断提示
为了帮助我们更快地调试重复问题,请收集并发送:
- OneSignal SDK 版本
- 设备操作系统版本
- 构建环境(Mac/Windows)
- Xcode 日志或 logcat 输出
- 应用中其他库/插件的列表
- 详细的复现步骤
常见问题
如果我的应用中有2个不同的通知SDK会怎么样?
如果我的应用中有2个不同的通知SDK会怎么样?
- Android:OneSignal 只会处理包含带有
"i"
字段的"custom"
键的通知。如果您之前的 SDK 不检查此键,它也可能处理并显示相同的通知。 - iOS:所有通知都会出现在系统托盘中。如果两个 SDK 发送相同的消息,用户会看到两次。
建议:对于 iOS 点击处理,在处理前检查
"custom"
载荷或使用您自己的载荷键以避免重复处理。
如何同时从之前的提供商和OneSignal发送推送?
如何同时从之前的提供商和OneSignal发送推送?
- Android:在集成 OneSignal 并发布应用时删除旧 SDK 通知处理代码。随着用户更新,他们将停止接收来自旧提供商的推送。
- iOS:在用户更新期间,您可以暂时继续从旧提供商发送。完全过渡后,仅从 OneSignal 发送以避免重复。