一、按目标选择服务
先确定要完成的事,再开通对应服务。三种需求可以组合,例如同时做聊天消息通知和运营推送。
| 方式 | 你想要完成的事 | 需要开通的服务 | 推送目标 |
| 1 | 只在 App 内收发聊天消息,不需要系统通知栏提醒 | 消息服务 Chat | 无 |
| 2 | 不集成 IM 聊天,仅推送运营消息 | 推送服务 Push | 设备 RegistrationID |
| 3 | 聊天消息需要在系统通知栏提醒,包括 App 退到后台或进程退出后 | 在同一个 Chat SDKAppID 上开通推送服务 Push | IM UserID |
注意:说明:
二、方式 1:只接入消息服务 Chat
1. 接入 IM SDK。
2. 完成 IM 登录后收发 Chat 消息。消息走 IM 长连接,不需要配置厂商通道。
三、方式 2:只接入推送服务 Push
1. 接入 TIMPush。
2. 配置 APNs、Android 厂商或 HarmonyOS 通道。
3. 用户同意隐私政策后调用 registerPush,appKey 传 Push 客户端密钥(Push Key)。
4. registerPush 成功后,调用 getRegistrationID 获取设备 RegistrationID。
5. 在腾讯云 Push 控制台或调用服务端 API 按 RegistrationID 推送运营消息。
四、方式 3:同时接入 Chat 和 Push
1. 接入 IM SDK 和 TIMPush,注意要在同一个 Chat SDKAppID 上开通推送服务 Push。
2. 配置 APNs、Android 厂商或 HarmonyOS 通道。
3. 按是否需要在用户登录前推送,选择注册顺序:
| 注册顺序 | 调用方式 | 可用推送目标 | 适用场景 |
| 先登录 IM 再注册 Push | IM login 成功后调用 registerPush(appKey = null/nil) | 登录后:IM userID注册后:IM userID / registrationID,此时 registrationID = IM userID | 只需在用户登录后推送聊天消息或运营消息 |
| 先注册 Push 再登录 IM | 用户同意隐私政策后调 registerPush(appKey = Push Key),再调用 IM login | 登录前:RegistrationID登录后:RegistrationID / IM UserID | 用户未登录时也要收到运营推送 |
4. 发送 IM 消息时,推送目标为接收方 IM UserID。自定义消息必须在 OfflinePushInfo 中设置 desc,否则不展示离线通知。
注意:禁止:
注意:如果你的业务仅需要在用户登录后推送聊天消息,请不要在登录前调用 registerPush。否则 IM SDK 会注册 Push 类型账号,并产生对应的 Push DAU。Push DAU 超出套餐额度后,会产生额外费用。