功能描述
消息回应功能是指对某条消息进行互动回应,典型的场景就是表情回应,表情回应是通过表情符号进行互动回应,我们可以看到每种表情的回应人数和回应人列表。
目前常见的表情回应展示方式有如下两种风格:
风格一 | |
风格二 | |
用户可以根据某个表情分页拉取所有使用该表情的用户资料。
您可以基于 SDK API 实现表情回应能力:
调用
addMessageReaction
接口为一条消息添加一个 emoji,添加成功后,emoji 下就会存储当前操作用户。调用
removeMessageReaction
接口删除已经添加的 emoji,删除成功后,emoji 下就不再存储当前操作用户。调用
getMessageReactions
接口批量拉取多条消息的 emoji 列表,其中每个 emoji 都包含了当前使用者总人数以及前 N(默认 10)个使用者用户资料。调用
getAllUserListOfMessageReaction
接口分页拉取消息 emoji 的全量使用者用户资料。监听
onRecvMessageReactionsChanged
事件,感知 emoji 的使用者信息变更,该事件会携带 emoji 最新的使用者信息(包含使用者总人数以及前 N 个使用者用户资料)。说明
添加消息回应
调用 addMessageReaction 接口可以添加消息回应。
接口
import { TencentImSDKPlugin } from 'react-native-tim-js';TencentImSDKPlugin.v2TIMManager.getMessageManager().addMessageReaction({msgID: msgID,reactionID: 'emoji',});
属性 | 含义 | 说明 |
msgID | 消息ID | 消息必须是发送成功的状态。 |
reactionID | 消息回应 ID | 在表情回应场景,reactionID 为表情 ID。 |
说明
单条消息最大支持 10 个 Reaction,单个 Reaction 最大支持 100 个用户。
如果单条消息 Reaction 数量超过最大限制,调用接口会报 ERR_SVR_MSG_REACTION_COUNT_LIMIT 错误。
如果单个 Reaction 用户数量超过最大限制,调用接口会报 ERR_SVR_MSG_REACTION_USER_COUNT_LIMIT 错误。
如果 Reaction 已经包含当前用户,调用接口会报 ERR_SVR_MSG_REACTION_ALREADY_CONTAIN_USER 错误。
删除消息回应
调用
removeMessageReaction
接口删除消息回应。接口
import { TencentImSDKPlugin } from 'react-native-tim-js';TencentImSDKPlugin.v2TIMManager.getMessageManager().removeMessageReaction
({msgID: msgID,reactionID: 'emoji',});
属性 | 含义 | 说明 |
msgID | 消息 ID | 消息必须是发送成功的状态。 |
reactionID | 消息回应 ID | 在表情回应场景,reactionID 为表情 ID。 |
批量拉取多条消息回应信息
调用
getMessageReactions
接口批量拉取多条消息回应信息。接口
import { TencentImSDKPlugin } from 'react-native-tim-js';TencentImSDKPlugin.v2TIMManager.getMessageManager().getMessageReactions({msgIDs: [msgID],maxUserCountPerReaction: 10,});
属性 | 含义 | 说明 |
msgIDs | 消息 ID 列表 | 消息必须属于同一个会话,消息必须是发送成功的状态。 |
maxUserCountPerReaction | 每个 Reaction 返回的最大用户资料数量 | 取值范围【0,10】,每个 Reaction 最多只返回前 10 个用户资料,如需更多用户资料,可以按需调用 getAllUserListOfMessageReaction 接口分页拉取。 |
拉取消息回应信息结果对象详解如下:
属性 | 含义 | 说明 |
resultCode | 返回码 | 0:表示成功。 非0:表示失败。 |
resultInfo | 返回信息 | 错误信息。 |
msgID | 消息 ID | 消息唯一 ID。 |
reactionList | 消息回应列表 | 消息回应 V2TIMMessageReaction 对象列表。 |
其中
V2TIMMessageReaction
对象详解如下:属性 | 含义 | 说明 |
reactionID | 消息回应 ID | 在表情回应场景,reactionID 为表情 ID。 |
totalUserCount | 总的用户个数 | 使用同一个 reactionID 回应消息的总的用户个数。 |
partialUserList | 部分用户列表 | 使用同一个 reactionID 回应消息的部分用户列表,用户列表数量取决于调用 getMessageReactions 接口时设置的 maxUserCountPerReaction 值。 |
reactedByMyself | 判断是否使用了该 reaction | 如果使用了该 reaction,则返回 true。 |
分页拉取全量消息回应用户列表
调用
getAllUserListOfMessageReaction
接口分页拉取全量消息回应用户列表。接口
import { TencentImSDKPlugin } from 'react-native-tim-js';TencentImSDKPlugin.v2TIMManager.getMessageManager().getAllUserListOfMessageReaction
({msgID: msgID,reactionID: 'emoji',nextSeq: 0,count: 10,});
属性 | 含义 | 说明 |
message | 消息 ID | 消息必须是发送成功的状态。 |
reactionID | 消息回应 ID | 在表情回应场景,reactionID 为表情 ID。 |
nextSeq | 分页拉取的游标 | 第一次传 0,后续分页传 succ 返回的 nextSeq。 |
count | 一次分页最大拉取个数 | 最大支持 100 个 |
消息回应信息更新
如果您事先调用
addAdvancedMsgListener
添加了高级消息事件监听器,当消息回应信息发生了更新,您会收onRecvMessageReactionsChanged
回调。需要注意的是该回调是消息 Reaction 的增量回调,只会携带变更的 Reaction 信息。当变更的 Reaction 信息里的
totalUserCount
字段值为0时,表明该 Reaction 已经没有用户在使用,您可以在 UI 上移除该 Reaction 的展示。import { TencentImSDKPlugin } from 'react-native-tim-js';TencentImSDKPlugin.v2TIMManager.getMessageManager().addAdvancedMsgListener({onRecvC2CReadReceipt: ( receiptList) {},// C2C 对端用户会话已读通知(对端用户调用 markC2CMessageAsRead,自己会收到该通知)onRecvMessageModified: ( message) {},// 消息内容被修改onRecvMessageReadReceipts: ( receiptList) {},// 消息已读回执通知(如果自己发送的消息支持已读回执,消息接收端调用 sendMessageReadReceipts,自己会收到该通知)onRecvMessageRevoked: ( messageid) {},// 收到消息撤回的通知onRecvNewMessage: ( message) {},// 收到新消息onSendMessageProgress: ( message, progress) {},// 上传消息进度事件onRecvMessageReactionsChanged
:
(
msgID, reactionList)
{
}
,
// 消息回应更新
});
交流与反馈