场景速查表
序号 | 业务条件 | 推荐场景 | 推送标识 | 关键接入动作 |
1 | 独立使用 Push 服务,仅需通知 / 营销推送 | 独立 Push 场景 | registrationID | 调用 registerPush 由 SDK 自动生成 registrationID,通过控制台或服务端 REST API 下发推送。 |
2 | 已接入 IM 服务,还需要 Push 服务,实现聊天消息的离线推送 | IM 场景 | userID | IM 登录成功后调用 registerPush,离线消息以通知栏形式送达。 |
3 | 已接入 Push 服务,还需要 IM 服务,同时需要通知营销推送和聊天消息推送 | 混用场景 | userID + registrationID 均支持 | 先调用 registerPush 由 SDK 自动生成 registrationID,可以实现指定 registrationID 推;IM 账号登录后,发送聊天消息支持离线触达。 请注意: 若使用 setRegistrationID 自定义 registrationID,必须与 IM userID 严格一致,否则会发生账号互踢导致推送丢失。使用 SDK 自动生成的 registrationID 不存在问题。 |
说明:
registrationID 默认在调用 registerPush 时由 SDK 自动生成,该 ID 与设备绑定,卸载重装后会发生变化。
userID 由业务方在 IM 登录时提供,与账号绑定跨设备可复用。当 IM 已登录时,再调用 registerPush 时推送 ID 会自动切换为当前登录的 userID。
注意事项
每次冷启动都要调用 registerPush
请在每一次冷启动应用后,在合适时机调用 registerPush,保证推送功能正常。

setRegistrationID 使用
在混用场景下,如果通过 setRegistrationID 自定义传入 registrationID,该 ID 必须与 IM 登录使用的 userID 保持完全一致,且 IM 账号登录后,需要再调用 registerPush 实现注册推送功能;否则 Push 账号与 IM 账号会相互视为不同身份,产生互踢下线,最终只有其中一个 ID 在线,导致推送下发不稳定。
