|
virtual | ~V2TIMMessageManager () |
|
virtual void | AddAdvancedMsgListener (V2TIMAdvancedMsgListener *listener)=0 |
|
virtual void | RemoveAdvancedMsgListener (V2TIMAdvancedMsgListener *listener)=0 |
|
virtual V2TIMMessage | CreateTextMessage (const V2TIMString &text)=0 |
|
virtual V2TIMMessage | CreateTextAtMessage (const V2TIMString &text, const V2TIMStringVector &atUserList)=0 |
|
virtual V2TIMMessage | CreateCustomMessage (const V2TIMBuffer &data)=0 |
|
virtual V2TIMMessage | CreateCustomMessage (const V2TIMBuffer &data, const V2TIMString &description, const V2TIMString &extension)=0 |
|
virtual V2TIMMessage | CreateImageMessage (const V2TIMString &imagePath)=0 |
|
virtual V2TIMMessage | CreateSoundMessage (const V2TIMString &soundPath, uint32_t duration)=0 |
|
virtual V2TIMMessage | CreateVideoMessage (const V2TIMString &videoFilePath, const V2TIMString &type, uint32_t duration, const V2TIMString &snapshotPath)=0 |
|
virtual V2TIMMessage | CreateFileMessage (const V2TIMString &filePath, const V2TIMString &fileName)=0 |
|
virtual V2TIMMessage | CreateLocationMessage (const V2TIMString &desc, double longitude, double latitude)=0 |
|
virtual V2TIMMessage | CreateFaceMessage (uint32_t index, const V2TIMBuffer &data)=0 |
|
virtual V2TIMMessage | CreateMergerMessage (const V2TIMMessageVector &messageList, const V2TIMString &title, const V2TIMStringVector &abstractList, const V2TIMString &compatibleText)=0 |
|
virtual V2TIMMessage | CreateForwardMessage (const V2TIMMessage &message)=0 |
|
virtual V2TIMMessage | CreateTargetedGroupMessage (const V2TIMMessage &message, const V2TIMStringVector &receiverList)=0 |
|
virtual V2TIMMessage | CreateAtSignedGroupMessage (const V2TIMMessage &message, const V2TIMStringVector &atUserList)=0 |
|
virtual V2TIMString | SendMessage (V2TIMMessage &message, const V2TIMString &receiver, const V2TIMString &groupID, V2TIMMessagePriority priority, bool onlineUserOnly, const V2TIMOfflinePushInfo &offlinePushInfo, V2TIMSendCallback *callback)=0 |
|
virtual void | SetC2CReceiveMessageOpt (const V2TIMStringVector &userIDList, V2TIMReceiveMessageOpt opt, V2TIMCallback *callback)=0 |
|
virtual void | GetC2CReceiveMessageOpt (const V2TIMStringVector &userIDList, V2TIMValueCallback< V2TIMReceiveMessageOptInfoVector > *callback)=0 |
|
virtual void | SetGroupReceiveMessageOpt (const V2TIMString &groupID, V2TIMReceiveMessageOpt opt, V2TIMCallback *callback)=0 |
|
virtual void | SetAllReceiveMessageOpt (V2TIMReceiveMessageOpt opt, int32_t startHour, int32_t startMinute, int32_t startSecond, uint32_t duration, V2TIMCallback *callback)=0 |
|
virtual void | SetAllReceiveMessageOpt (V2TIMReceiveMessageOpt opt, uint32_t startTimeStamp, uint32_t duration, V2TIMCallback *callback)=0 |
|
virtual void | GetAllReceiveMessageOpt (V2TIMValueCallback< V2TIMReceiveMessageOptInfo > *callback)=0 |
|
virtual void | GetHistoryMessageList (const V2TIMMessageListGetOption &option, V2TIMValueCallback< V2TIMMessageVector > *callback)=0 |
|
virtual void | RevokeMessage (const V2TIMMessage &message, V2TIMCallback *callback)=0 |
|
virtual void | ModifyMessage (const V2TIMMessage &message, V2TIMCompleteCallback< V2TIMMessage > *callback)=0 |
|
virtual void | DeleteMessages (const V2TIMMessageVector &messages, V2TIMCallback *callback)=0 |
|
virtual void | ClearC2CHistoryMessage (const V2TIMString &userID, V2TIMCallback *callback)=0 |
|
virtual void | ClearGroupHistoryMessage (const V2TIMString &groupID, V2TIMCallback *callback)=0 |
|
virtual V2TIMString | InsertGroupMessageToLocalStorage (V2TIMMessage &message, const V2TIMString &groupID, const V2TIMString &sender, V2TIMValueCallback< V2TIMMessage > *callback)=0 |
|
virtual V2TIMString | InsertC2CMessageToLocalStorage (V2TIMMessage &message, const V2TIMString &userID, const V2TIMString &sender, V2TIMValueCallback< V2TIMMessage > *callback)=0 |
|
virtual void | FindMessages (const V2TIMStringVector &messageIDList, V2TIMValueCallback< V2TIMMessageVector > *callback)=0 |
|
virtual void | SearchLocalMessages (const V2TIMMessageSearchParam &searchParam, V2TIMValueCallback< V2TIMMessageSearchResult > *callback)=0 |
|
virtual void | SearchCloudMessages (const V2TIMMessageSearchParam &searchParam, V2TIMValueCallback< V2TIMMessageSearchResult > *callback)=0 |
|
virtual void | SendMessageReadReceipts (const V2TIMMessageVector &messageList, V2TIMCallback *callback)=0 |
|
virtual void | GetMessageReadReceipts (const V2TIMMessageVector &messageList, V2TIMValueCallback< V2TIMMessageReceiptVector > *callback)=0 |
|
virtual void | GetGroupMessageReadMemberList (const V2TIMMessage &message, V2TIMGroupMessageReadMembersFilter filter, uint64_t nextSeq, uint32_t count, V2TIMValueCallback< V2TIMGroupMessageReadMemberList > *callback)=0 |
|
virtual void | SetMessageExtensions (const V2TIMMessage &message, const V2TIMMessageExtensionVector &extensions, V2TIMValueCallback< V2TIMMessageExtensionResultVector > *callback)=0 |
|
virtual void | GetMessageExtensions (const V2TIMMessage &message, V2TIMValueCallback< V2TIMMessageExtensionVector > *callback)=0 |
|
virtual void | DeleteMessageExtensions (const V2TIMMessage &message, const V2TIMStringVector &keys, V2TIMValueCallback< V2TIMMessageExtensionResultVector > *callback)=0 |
|
virtual void | AddMessageReaction (const V2TIMMessage &message, const V2TIMString &reactionID, V2TIMCallback *callback)=0 |
|
virtual void | RemoveMessageReaction (const V2TIMMessage &message, const V2TIMString &reactionID, V2TIMCallback *callback)=0 |
|
virtual void | GetMessageReactions (const V2TIMMessageVector &messageList, uint32_t maxUserCountPerReaction, V2TIMValueCallback< V2TIMMessageReactionResultVector > *callback)=0 |
|
virtual void | GetAllUserListOfMessageReaction (const V2TIMMessage &message, const V2TIMString &reactionID, uint32_t nextSeq, uint32_t count, V2TIMValueCallback< V2TIMMessageReactionUserResult > *callback)=0 |
|
virtual void | TranslateText (const V2TIMStringVector &sourceTextList, const V2TIMString &sourceLanguage, const V2TIMString &targetLanguage, V2TIMValueCallback< V2TIMStringToV2TIMStringMap > *callback)=0 |
|
virtual void | PinGroupMessage (const V2TIMString &groupID, const V2TIMMessage &message, bool isPinned, V2TIMCallback *callback)=0 |
|
virtual void | GetPinnedGroupMessageList (const V2TIMString &groupID, V2TIMValueCallback< V2TIMMessageVector > *callback)=0 |
|
virtual void | MarkC2CMessageAsRead (const V2TIMString &userID, V2TIMCallback *callback)=0 |
|
virtual void | MarkGroupMessageAsRead (const V2TIMString &groupID, V2TIMCallback *callback)=0 |
|
virtual void | MarkAllMessageAsRead (V2TIMCallback *callback)=0 |
|
2.11 创建合并消息(5.2.210 及以上版本支持)
我们在收到一条合并消息的时候,通常会在聊天界面这样显示:
|vinson 和 lynx 的聊天记录 | – title (标题)
|vinson:新版本 SDK 计划什么时候上线呢? | – abstract1 (摘要信息1)
|lynx:计划下周一,具体时间要看下这两天的系统测试情况..| – abstract2 (摘要信息2)
|vinson:好的. | – abstract3 (摘要信息3)
聊天界面通常只会展示合并消息的标题和摘要信息,完整的转发消息列表,需要用户主动点击转发消息 UI 后再获取。
多条被转发的消息可以被创建成一条合并消息 V2TIMMessage,然后调用 SendMessage 接口发送,实现步骤如下:
1. 调用 CreateMergerMessage 创建一条合并消息 V2TIMMessage。
2. 调用 SendMessage 发送转发消息 V2TIMMessage。
收到合并消息解析步骤:
1. 通过 V2TIMMessage 获取 mergerElem。
2. 通过 mergerElem 获取 title 和 abstractList UI 展示。
3. 当用户点击摘要信息 UI 的时候,调用 DownloadMessageList 接口获取转发消息列表。
- 参数
-
messageList | 消息列表(最大支持 300 条,消息对象必须是 V2TIM_MSG_STATUS_SEND_SUCC 状态,消息类型不能为 V2TIMGroupTipsElem) |
title | 合并消息的来源,比如 "vinson 和 lynx 的聊天记录"、"xxx 群聊的聊天记录"。 |
abstractList | 合并消息的摘要列表(最大支持 5 条摘要,每条摘要的最大长度不超过 100 个字符),不同的消息类型可以设置不同的摘要信息,比如: 文本消息可以设置为:sender:text,图片消息可以设置为:sender:[图片],文件消息可以设置为:sender:[文件]。 |
compatibleText | 合并消息兼容文本,低版本 SDK 如果不支持合并消息,默认会收到一条文本消息,文本消息的内容为 compatibleText, 该参数不能为空字符串。 |
5.18 添加消息回应(可以用于实现表情回应)(7.4 及其以上版本支持,需要您购买旗舰版套餐)
表情回应功能是指对某条消息通过表情符号进行互动回应,我们可以看到每种表情的回应人数和回应人列表。
目前常见的消息回应展示方式会有如下两种风格:
风格一:
-------------------------—
| lucy, happy birthday! |
-------------------------—
| 😄 1 💐 2 👍🏻 10 |
-------------------------—
风格二:
---------------------------------------------—
| lucy, happy birthday! |
---------------------------------------------—
| 😁 bob 💐olivia 🎂david |
| 👍🏻 denny、james、lucy、linda、thomas 等10人 |
---------------------------------------------—
当用户点击某个表情后,会跳转到表情回应详情界面:
| 😄 | 💐 | 👍🏻 |
| bob | olivia | lucy |
| ... | ... | denny |
| ... | ... | ... |
用户可以根据某个表情分页拉取使用该表情的用户信息。
您可以基于 SDK API 实现表情回应能力:
1、调用 AddMessageReaction 接口为一条消息添加一个 emoji,添加成功后,emoji 下就会存储当前操作用户。
2、调用 RemoveMessageReaction 接口删除已经添加的 emoji,删除成功后,emoji 下就不再存储当前操作用户。
3、调用 GetMessageReactions 接口批量拉取多条消息的 emoji 列表,其中每个 emoji 都包含了当前使用者总人数以及前 N(默认 10)个使用者用户资料。
4、调用 GetAllUserListOfMessageReaction 接口分页拉取消息 emoji 的全量使用者用户资料。
5、监听 onRecvMessageReactionsChanged 回调,感知 emoji 的使用者信息变更,该回调会携带 emoji 最新的使用者信息(包含使用者总人数以及前 N 个使用者用户资料)。
- 参数
-
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 错误。