tencent cloud

文档反馈

React Native

最后更新时间:2023-11-30 09:38:03

    功能描述

    消息回应功能是指对某条消息进行互动回应,典型的场景就是表情回应,表情回应是通过表情符号进行互动回应,我们可以看到每种表情的回应人数和回应人列表。
    目前常见的表情回应展示方式有如下两种风格:
    风格一
    
    
    
    风格二
    
    
    
    用户可以根据某个表情分页拉取所有使用该表情的用户资料。
    您可以基于 SDK API 实现表情回应能力:
    调用 addMessageReaction 接口为一条消息添加一个 emoji,添加成功后,emoji 下就会存储当前操作用户。
    调用 removeMessageReaction 接口删除已经添加的 emoji,删除成功后,emoji 下就不再存储当前操作用户。
    调用 getMessageReactions 接口批量拉取多条消息的 emoji 列表,其中每个 emoji 都包含了当前使用者总人数以及前 N(默认 10)个使用者用户资料。
    调用 getAllUserListOfMessageReaction 接口分页拉取消息 emoji 的全量使用者用户资料。
    监听 onRecvMessageReactionsChanged 事件,感知 emoji 的使用者信息变更,该事件会携带 emoji 最新的使用者信息(包含使用者总人数以及前 N 个使用者用户资料)。
    说明
    v0.1.28 起支持,该功能为旗舰版功能,需要您购买 旗舰版套餐

    添加消息回应

    调用 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{}, // 消息回应更新
    }
    );
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持