高级消息
Public 成员函数 | |
bool | IsRead () const |
bool | IsPeerRead () const |
V2TIMBuffer | GetLocalCustomData () const |
void | SetLocalCustomData (const V2TIMBuffer &localCustomData, V2TIMCallback *callback) |
int | GetLocalCustomInt () const |
void | SetLocalCustomInt (int localCustomInt, V2TIMCallback *callback) |
V2TIMMessage () | |
V2TIMMessage (const V2TIMMessage &) | |
V2TIMMessage & | operator= (const V2TIMMessage &) |
~V2TIMMessage () override | |
V2TIMMessage | ( | ) |
V2TIMMessage | ( | const V2TIMMessage & | ) |
|
override |
bool IsRead | ( | ) | const |
消息自己是否已读
bool IsPeerRead | ( | ) | const |
消息对方是否已读(只有 C2C 消息有效) 该字段为 true 的条件是消息 timestamp <= 对端标记会话已读的时间
V2TIMBuffer GetLocalCustomData | ( | ) | const |
获取消息自定义数据(本地保存,不会发送到对端,程序卸载重装后失效)
void SetLocalCustomData | ( | const V2TIMBuffer & | localCustomData, |
V2TIMCallback * | callback | ||
) |
设置消息自定义数据(本地保存,不会发送到对端,程序卸载重装后失效)
int GetLocalCustomInt | ( | ) | const |
获取消息自定义数据,可以用来标记语音、视频消息是否已经播放(本地保存,不会发送到对端,程序卸载重装后失效)
void SetLocalCustomInt | ( | int | localCustomInt, |
V2TIMCallback * | callback | ||
) |
设置消息自定义数据,可以用来标记语音、视频消息是否已经播放(本地保存,不会发送到对端,程序卸载重装后失效)
V2TIMMessage& operator= | ( | const V2TIMMessage & | ) |
V2TIMString msgID |
消息 ID(消息创建的时候为空,消息发送的时候会生成)
int64_t timestamp |
消息的 UTC 时间戳
V2TIMString sender |
消息发送者
V2TIMString nickName |
消息发送者昵称
V2TIMString friendRemark |
消息发送者好友备注
V2TIMString nameCard |
如果是群组消息,nameCard 为发送者的群名片
V2TIMString faceURL |
消息发送者头像 在 C2C 场景下,陌生人的头像不会实时更新,如需更新陌生人的头像(如在 UI 上点击陌生人头像以展示陌生人信息时), 请调用 V2TIMManager.h -> GetUsersInfo 接口触发信息的拉取。待拉取成功后,SDK 会更新本地头像信息,即 faceURL 字段的内容。
V2TIMString groupID |
如果是群组消息,groupID 为会话群组 ID,否则为空
V2TIMString userID |
如果是单聊消息,userID 为会话用户 ID,否则为空, 假设自己和 userA 聊天,无论是自己发给 userA 的消息还是 userA 发给自己的消息,这里的 userID 均为 userA
uint64_t seq |
群聊中的消息序列号云端生成,在群里是严格递增且唯一的, 单聊中的序列号是本地生成,不能保证严格递增且唯一。
uint64_t random |
消息随机码
V2TIMMessageStatus status |
消息发送状态
bool supportMessageExtension |
是否支持消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐) 直播群(AVChatRoom)消息不支持该功能。 您需要先到 IM 控制台配置该功能。
bool isSelf |
消息发送者是否是自己
bool needReadReceipt |
消息是否需要已读回执
群聊消息 6.1 及以上版本支持该特性,需要您先到 IM 控制台配置支持已读回执的群类型。
单聊消息 6.2 及以上版本支持该特性。
群聊消息和单聊消息都需要购买旗舰版套餐包。
bool isBroadcastMessage |
是否是广播消息,仅直播群支持(6.5 及以上版本支持,需要您购买旗舰版套餐)
V2TIMMessagePriority priority |
消息优先级(只有 onRecvNewMessage 收到的 V2TIMMessage 获取有效)
V2TIMStringVector groupAtUserList |
群消息中被 @ 的用户 UserID 列表(即该消息都 @ 了哪些人)
V2TIMElemVector elemList |
消息元素列表
推荐一条消息只存放一个 elem,在收到这条消息时,调用 elemList[0] 获取这个elem,示例代码如下: if (1 == message.elemList.Size()) { V2TIMElem *elem = message.elemList[0]; switch (elem->elemType) { case V2TIM_ELEM_TYPE_TEXT: V2TIMTextElem *textElem = static_cast<V2TIMTextElem *>(elem); break; case V2TIM_ELEM_TYPE_CUSTOM: V2TIMCustomElem *customElem = static_cast<V2TIMCustomElem *>(elem); break; case V2TIM_ELEM_TYPE_FACE: V2TIMFaceElem *faceElem = static_cast<V2TIMFaceElem *>(elem); break; case V2TIM_ELEM_TYPE_LOCATION: V2TIMLocationElem *locationElem = static_cast<V2TIMLocationElem *>(elem); break; default: break; } }
如果一条消息有多个 elem,遍历 elemList 列表,获取全部 elem 元素,示例代码如下: for (size_t i = 0; i < message.elemList.Size(); ++i) { V2TIMElem *elem = message.elemList[i]; switch (elem->elemType) { case V2TIM_ELEM_TYPE_TEXT: V2TIMTextElem *textElem = static_cast<V2TIMTextElem *>(elem); break; case V2TIM_ELEM_TYPE_CUSTOM: V2TIMCustomElem *customElem = static_cast<V2TIMCustomElem *>(elem); break; case V2TIM_ELEM_TYPE_FACE: V2TIMFaceElem *faceElem = static_cast<V2TIMFaceElem *>(elem); break; case V2TIM_ELEM_TYPE_LOCATION: V2TIMLocationElem *locationElem = static_cast<V2TIMLocationElem *>(elem); break; default: break; } }
如果您的一条消息需要多个 elem,可以在创建 Message 对象后,调用 elemList.PushBack 添加新 elem, 以 V2TIMTextElem 和 V2TIMCustomElem 多 elem 为例,示例代码如下: V2TIMCustomElem *customElem = new V2TIMCustomElem(); customElem->data = buffer; V2TIMMessage message = messageManager.CreateTextMessage("text"); message.elemList.PushBack(customElem);
V2TIMBuffer cloudCustomData |
消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)
bool isExcludedFromUnreadCount |
消息是否不计入会话未读数:默认为 false,表明需要计入会话未读数,设置为 true,表明不需要计入会话未读数
5.3.425 及以上版本支持, 会议群(Meeting)默认不支持该字段
bool isExcludedFromLastMessage |
消息是否不计入会话 lastMsg:默认为 false,表明需要计入会话 lastMsg,设置为 true,表明不需要计入会话 lastMsg
bool isExcludedFromContentModeration |
消息是否不过内容审核(【云端审核】) 只有在开通【云端审核】功能后,isExcludedFromContentModeration 设置才有效,设置为 true,表明不过内容审核,设置为 false:表明过内容审核。 【云端审核】开通流程请参考 云端审核功能
V2TIMString customModerationConfigurationID |
消息自定义审核配置 ID(从 7.8 版本开始支持) 在开通【云端审核】功能后,您可以请前往 控制台 (云端审核 -> 审核配置 -> 自定义配置 -> 添加自定义配置) 获取配置 ID。 【自定义审核】配置流程请参考 [云端审核功能](https://cloud.tencent.com/document/product/269/78633a5efc9e8-a7ec-40e3-9b18-8ed1910f589c)
bool hasRiskContent |
是否被标记为有安全风险的消息(从 7.4 版本开始支持) 暂时只支持语音和视频消息。 只有在开通【云端审核】功能后才生效,【云端审核】开通流程请参考 云端审核功能。 如果您发送的语音或视频消息内容不合规,云端异步审核后会触发 SDK 的 onRecvMessageModified 回调,回调里的 message 对象该字段值为 true。
bool disableCloudMessagePreHook |
是否禁用消息发送前云端回调(从 8.1 版本开始支持)
bool disableCloudMessagePostHook |
是否禁用消息发送后云端回调(从 8.1 版本开始支持)
V2TIMOfflinePushInfo offlinePushInfo |
消息的离线推送信息
V2TIMUserFullInfo revokerInfo |
消息撤回者(从 7.4 版本开始支持) 仅当消息为撤回状态时有效
V2TIMString revokeReason |
消息撤回原因 (从 7.4 版本开始支持) 仅当消息为撤回状态时有效
V2TIMGroupMemberInfo pinnerInfo |
消息置顶者 (从 8.0 版本开始支持) 只有通过 GetPinnedGroupMessageList 获取到的置顶消息才包含该字段
|
inherited |