红包场景实践
场景说明
用户在单聊/群聊会话中向指定好友发送红包(实际货币、虚拟货币、积分等),发送人和接收人可以明确感知红包是否被领取的状态(未领取、已领取)。
效果示例
无 UI 集成,您可根据业务侧逻辑调整相关 UI。
红包消息流程
1. 准备工作
在开始之前,请确保已创建应用并完成客户端 SDK 集成。
2. 定义红包消息
2.1 定义红包消息类型
您可通过 IMLib SDK 的自定义消息,创建红包类消息类型(如 RedPacketMessage),消息内容结构需根据业务需求自行定义,确保多端(Android / iOS / Web)一致。
Android / iOS 端自定义消息类参考:
- Android 端 CustomRedPacketMessage.java
- iOS 端 CustomRedPacketMessage.h
- iOS 端 CustomRedPacketMessage.m
- Server SDK RedPacketMessage.java
Web 端示例代码:
javascript
// 1. RongIMLib.registerMessageType 必须在 connect 之前调用,否则可能造成收取消息的行为异常。
// 2. 请尽量把应用中所有涉及到的自定义消息统一一次注册,且同类型消息仅调用一次注册,便于管理。
const messageType = 'app:red_packet' // 消息类型
const isPersited = true // 是否存储
const isCounted = true // 是否计数
const searchProps = [] // 搜索字段,Web 端无需设置,搜索字段值设置为数字时取值范围为 (-Math.pow(2, 64), Math.pow(2, 64)) 且为整数
const isStatusMessage = false // 是否是状态消息。状态消息不存储、不计数,接收方在线时才能收到。
const PersonMessage = RongIMLib.registerMessageType(messageType, isPersited, isCounted, searchProps, isStatusMessage)