1.1 添加高级消息的事件监听器
1.2 移除高级消息监听器
2.1 创建文本消息
2.2 创建文本消息,并且可以附带 @ 提醒功能(该接口已弃用,推荐使用 CreateAtSignedGroupMessage 接口)
提醒消息仅适用于在群组中发送的消息
需要 @ 的用户列表,如果需要 @ALL,请传入 kImSDK_MesssageAtALL 常量字符串。 举个例子,假设该条文本消息希望@提醒 denny 和 lucy 两个用户,同时又希望 @所有人,atUserList 传 {"denny","lucy",kImSDK_MesssageAtALL}
atUserList 使用注意事项
2.4 创建自定义消息
Optional
option: { Optional
description?: stringOptional
extension?: string2.5 创建图片消息(图片最大支持 28 MB)
图片路径,必须在应用的缓存目录下,例如 getContext().cacheDir + "/image.jpg"
2.6 创建语音消息(语音最大支持 28 MB)
音频文件路径,必须在应用的缓存目录下,例如 getContext().cacheDir + "/sound.mp3"
语音时长,单位 s
2.7 创建视频消息(视频最大支持 100 MB)
音频文件路径,必须在应用的缓存目录下,例如 getContext().cacheDir + "/video.mp4"
视频类型,如 mp4 mov 等
视频时长,单位 s
视频封面图片路径,必须在应用的缓存目录下,例如 getContext().cacheDir + "/snapshot.jpg"
2.8 创建文件消息(文件最大支持 100 MB)
文件名
2.9 创建地理位置消息
2.10 创建表情消息
SDK 并不提供表情包,如果开发者有表情包,可使用 index 存储表情在表情包中的索引, 或者直接使用 data 存储表情二进制信息以及字符串 key,都由用户自定义,SDK 内部只做透传。
表情索引
自定义数据
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 接口获取转发消息列表。
消息列表(最大支持 300 条,消息对象必须是 V2TIM_MSG_STATUS_SEND_SUCC 状态,消息类型不能为 V2TIMGroupTipsElem)
合并消息的来源,比如 "vinson 和 lynx 的聊天记录"、"xxx 群聊的聊天记录"。
合并消息的摘要列表(最大支持 5 条摘要,每条摘要的最大长度不超过 100 个字符),不同的消息类型可以设置不同的摘要信息,比如: 文本消息可以设置为:sender:text,图片消息可以设置为:sender:[图片],文件消息可以设置为:sender:[文件]。
合并消息兼容文本,低版本 SDK 如果不支持合并消息,默认会收到一条文本消息,文本消息的内容为 compatibleText, 该参数不能为空字符串。
2.12 创建转发消息(5.2.210 及以上版本支持)
如果需要转发一条消息,不能直接调用 SendMessage 接口发送原消息,需要先 CreateForwardMessage 创建一条转发消息再发送。
待转发的消息对象,消息状态必须为 V2TIM_MSG_STATUS_SEND_SUCC,消息类型不能为 V2TIMGroupTipsElem。
转发消息对象,elem 内容和原消息完全一致。
2.13 创建定向群消息(6.0 及以上版本支持)
如果您需要在群内给指定群成员列表发消息,可以创建一条定向群消息,定向群消息只有指定群成员才能收到。
原始消息对象
消息接收者列表
定向群消息对象
2.14 创建带 @ 标记的群消息(7.0 及以上版本支持)
如果您需要发送的群消息附带 @ 提醒功能,可以创建一条带 @ 标记的群消息。
原始消息对象
需要 @ 的用户列表,如果需要 @ALL,请传入 kImSDK_MesssageAtALL 常量字符串。 举个例子,假设该条消息希望@提醒 denny 和 lucy 两个用户,同时又希望@所有人,atUserList 传 @[@"denny",@"lucy",kImSDK_MesssageAtALL]
群 @ 消息对象
atUserList 使用注意事项
3.1 发送高级消息(高级版本:可以指定优先级,推送信息等特性)
待发送的消息对象,需要通过对应的 CreateXXXMessage 接口进行创建。
Optional
option: { Optional
receiver?: stringOptional
groupID?: stringOptional
priority?: V2TIMMessagePriorityOptional
callback?: V2TIMUploadCallbackOptional
onlineOptional
offline消息唯一标识
4.1 设置针对某个用户的 C2C 消息接收选项(支持批量设置)
5.3.425 及以上版本支持
三种类型的消息接收选项: V2TIMMessage.V2TIM_RECEIVE_MESSAGE:在线正常接收消息,离线时会有厂商的离线推送通知 V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE:不会接收到消息 V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE:在线正常接收消息,离线不会有推送通知
4.2 查询针对某个用户的 C2C 消息接收选项
5.3.425 及以上版本支持
4.3 设置群消息的接收选项
消息接收选项: V2TIMReceiveMessageOpt.V2TIM_RECEIVE_MESSAGE:在线正常接收消息,离线时会有厂商的离线推送通知 V2TIMReceiveMessageOpt.V2TIM_NOT_RECEIVE_MESSAGE:不会接收到群消息 V2TIMReceiveMessageOpt.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE:在线正常接收消息,离线不会有推送通知 V2TIMReceiveMessageOpt.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE_EXCEPT_AT:在线正常接收消息,离线只推送 @ 消息 V2TIMReceiveMessageOpt.V2TIM_NOT_RECEIVE_MESSAGE_EXCEPT_AT:在线和离线都只接收@消息
4.4 设置全局消息接收选项,从 7.4 版本开始支持。
全局消息接收选项,支持两种取值: V2TIMReceiveMessageOpt.V2TIM_RECEIVE_MESSAGE:在线正常接收消息,离线时会有厂商的离线推送通知,默认为该选项 V2TIMReceiveMessageOpt.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE:在线正常接收消息,离线不会有推送通知,可用于实现消息免打扰功能
免打扰开始时间:小时,取值范围[0 - 23]
免打扰开始时间:分钟,取值范围[0 - 59]
免打扰开始时间:秒,取值范围[0 - 59]
免打扰持续时长:单位:秒,取值范围 [0 - 246060].
4.5 设置全局消息接收选项,从 7.4 版本开始支持。
全局消息接收选项,支持两种取值: V2TIMReceiveMessageOpt.V2TIM_RECEIVE_MESSAGE:在线正常接收消息,离线时会有厂商的离线推送通知,默认为该选项 V2TIMReceiveMessageOpt.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE:在线正常接收消息,离线不会有推送通知,可用于实现消息免打扰功能
免打扰开始时间,UTC 时间戳,单位:秒
免打扰持续时长,单位:秒
4.5 获取登录用户全局消息接收选项,从 7.4 版本开始支持
5.1 获取历史消息高级接口
拉取消息选项设置,可以设置从云端、本地拉取更老或更新的消息
5.2 撤回消息
5.3 消息变更
5.4 删除本地消息
该接口只能删除本地历史,消息删除后,SDK 会在本地把这条消息标记为已删除状态,getHistoryMessage 不能再拉取到,如果程序卸载重装,本地会失去对这条消息的删除标记,getHistoryMessage 还能再拉取到该条消息。
5.5 删除本地及云端的消息
该接口删除本地及云端的消息,且无法恢复。需要注意的是:
5.8 向群组消息列表中添加一条消息
该接口主要用于满足向群组聊天会话中插入一些提示性消息的需求,比如“您已经退出该群”,这类消息有展示 在聊天消息区的需求,但并没有发送给其他人的必要。 所以 InsertGroupMessageToLocalStorage() 相当于一个被禁用了网络发送能力的 SendMessage() 接口。
msgID 消息唯一标识
通过该接口 save 的消息只存本地,程序卸载后会丢失。
5.9 向C2C消息列表中添加一条消息
该接口主要用于满足向C2C聊天会话中插入一些提示性消息的需求,比如“您已成功发送消息”,这类消息有展示 在聊天消息去的需求,但并没有发送给对方的必要。 所以 InsertC2CMessageToLocalStorage()相当于一个被禁用了网络发送能力的 SendMessage() 接口。
msgID 消息唯一表示
通过该接口 save 的消息只存本地,程序卸载后会丢失。
5.10 根据 messageID 查询指定会话中的本地消息,包括状态 status 为 V2TIM_MSG_STATUS_LOCAL_REVOKED(已撤回)和 V2TIM_MSG_STATUS_HAS_DELETED(已删除)的消息
消息 ID 列表
通过 V2TIMMessage 的 status 来区分消息的状态
5.11 搜索本地消息(5.4.666 及以上版本支持,需要您购买旗舰版套餐)
消息搜索参数,详见 V2TIMMessageSearchParam 的定义
返回的列表不包含消息状态 status 为 V2TIM_MSG_STATUS_LOCAL_REVOKED(已撤回)和 V2TIM_MSG_STATUS_HAS_DELETED(已删除)的消息
5.12 搜索云端消息(7.3 及以上版本支持)
消息搜索参数,详见 V2TIMMessageSearchParam 的定义
5.13 发送消息已读回执(6.1 及其以上版本支持)
5.14 获取消息已读回执(6.1 及其以上版本支持)
消息列表
5.15 获取群消息已读群成员列表(6.1 及其以上版本支持)
群消息
指定拉取已读或未读群成员列表。
分页拉取的游标,第一次默认取传 0,后续分页拉取时,传上一次分页拉取成功回调里的 nextSeq。
分页拉取的个数,最多支持 100 个。
5.16 设置消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐)
消息对象,消息需满足三个条件:1、消息发送前需设置 supportMessageExtension 为 true,2、消息必须是发送成功的状态,3、消息不能是社群(Community)和直播群(AVChatRoom)消息。
扩展信息,如果扩展 key 已经存在,则修改扩展的 value 信息,如果扩展 key 不存在,则新增扩展。
5.17 获取消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐)
5.18 删除消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐)
消息扩展 key 列表, 单次最大支持删除 20 个消息扩展,如果设置为 nil ,表示删除所有消息扩展
5.19 添加消息回应(可以用于实现表情回复)(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 个使用者用户资料)。
消息回应 ID,在表情回复场景,reactionID 为表情 ID,单条消息最大支持 10 个 Reaction,单个 Reaction 最大支持 100 个用户。
5.20 删除消息回应(7.4 及其以上版本支持,需要您购买旗舰版套餐)
5.21 批量拉取多条消息回应信息(7.4 及其以上版本支持,需要您购买旗舰版套餐)
消息列表,一次最大支持 20 条消息,消息必须属于同一个会话。
取值范围 【0,10】,每个 Reaction 最多只返回前 10 个用户信息,如需更多用户信息,可以按需调用 getAllUserListOfMessageReaction 接口分页拉取。
5.22 分页拉取使用指定消息回应用户信息(7.4 及其以上版本支持,需要您购买旗舰版套餐)
消息对象
消息回应 ID
分页拉取的游标,第一次传 0,后续分页传 succ 返回的 nextSeq。
一次分页最大拉取个数,最大支持 100 个。
5.23 翻译文本消息
待翻译文本数组。
源语言。可以设置为特定语言或 ”auto“。“auto“ 表示自动识别源语言。传空默认为 ”auto“。
目标语言。支持的目标语言有多种,例如:英语-“en“,简体中文-”zh“,法语-”fr“,德语-”de“等。详情请参考文档:文本翻译语言支持。
5.24 设置群消息置顶(7.9 及以上版本支持,需要您购买旗舰版套餐)
群 ID
是否置顶
5.25 获取已置顶的群消息列表(7.9 及以上版本支持,需要您购买旗舰版套餐)
群 ID
Generated using TypeDoc
腾讯云通信服务 IMSDK
消息高级接口,里面包含了所有高级消息的创建、收发逻辑