TencentImSDKPlugin.v2TIMManager.getMessageManager()
中。// 拉取单聊历史消息// 首次拉取,lastMsgID 设置为 null// 再次拉取时,lastMsgID 可以使用返回的消息列表中的最后一条消息的idconst userID = "userID";const count = 10;const lastMsgID = null;TencentImSDKPlugin.v2TIMManager.getMessageManager().getC2CHistoryMessageList(userID, count, lastMsgID);
// 拉取群聊历史消息// 首次拉取,lastMsgID 设置为 null// 再次拉取时,lastMsgID 可以使用返回的消息列表中的最后一条消息idconst groupID = "userID";const count = 10;const lastMsgID = null;TencentImSDKPlugin.v2TIMManager.getMessageManager().getGroupHistoryMessageList(groupID, count, lastMsgID);
public getHistoryMessageList(count: number,getType = HistoryMsgGetTypeEnum.V2TIM_GET_LOCAL_OLDER_MSG,userID?: string,groupID?: string,lastMsgSeq = -1,lastMsgID?: string,messageTypeList?: number[]): V2TimValueCallback<V2TimMessage[]>
参数 | 含义 | 单聊有效 | 群聊有效 | 是否必填 | 说明 |
getType | 拉取消息的位置及方向,可以设置拉取 本地/云端 的 更老/更新 的消息 | YES | YES | YES | 当设置从云端拉取时,会将本地存储消息列表与云端存储消息列表合并后返回。如果无网络,则直接返回本地消息列表。 |
userID | 拉取指定用户的单聊历史消息 | YES | NO | NO | 拉取单聊消息,需要指定对方的 userID,此时 groupID 传空即可。 |
groupID | 拉取指定群组的群聊历史消息 | NO | YES | NO | 拉取单聊消息,需要指定群聊的 groupID,此时 userID 传空即可。 |
count | 单次拉取的消息数量 | YES | YES | YES | 建议设置为 20,否则可能影响拉取速度 |
lastMsgID | 最后一条消息,表示从哪条消息开始拉取历史消息 | YES | YES | NO | 1. 单聊和群聊中均能使用。 2. 设置 lastMsg 作为拉取的起点,返回的消息列表中不包含这条消息。 3. 如果设置为空,则使用会话的最新一条消息作为拉取起点。 |
lastMsgSeq | 最后一条消息 seq,表示从哪条消息开始拉取历史消息 | NO | YES | NO | 1. 仅能在群聊中使用该字段。 2. 设置 lastMsgSeq 作为拉取的起点,返回的消息列表中包含这条消息。 3. 如果同时指定了 lastMsg 和 lastMsgSeq,SDK 优先使用 lastMsg。 4. 如果均未指定 lastMsg 和 lastMsgSeq,拉取的起点取决于是否设置 getTimeBegin。设置了,则使用设置的范围作为起点;未设置,则使用最新消息作为起点。 |
lastMsg
和 count
来实现分页。第一次拉取时 lastMsg
可以设置为空,使用消息列表中返回来最后一条消息作为下一次拉取的 lastMsg
从而拉去下一页数据。lastMsg
设置为空时,SDK 会默认从最新的消息开始返回。lastMsg
后,返回的消息列表不包含设置的 lastMsg
。count
设置为 20。lastMsgSeq
所对应的消息,所以在拉取群聊历史消息时,不建议使用 lastMsgSeq
来续拉。getType
来实现仅拉取本地消息:getType
取值为 V2TIM_GET_LOCAL_OLDER_MSG
时,表示往时间更旧的方向,拉取本地存储的消息。getType
取值为 V2TIM_GET_LOCAL_NEWER_MSG
时,表示往时间更新的方向,拉取本地存储的消息。const count = 10;const getType = HistoryMsgGetTypeEnum.V2TIM_GET_LOCAL_OLDER_MSG;const userID = "userID";TencentImSDKPlugin.v2TIMManager.getMessageManager().getHistoryMessageList(count, getType, userID);
sequence
,并使用 高级接口 来拉取。// 获取群 @ 消息对应的的 sequenceconst atSequence = 1081;// 拉取群 @ 消息及之前的消息const count = 20;const getType = HistoryMsgGetTypeEnum.V2TIM_GET_LOCAL_OLDER_MSG;const lastMsgSeq = atSequence;const userID = "";const groupID = "groupID";TencentImSDKPlugin.v2TIMManager.getMessageManager().getHistoryMessageList(count, // 拉取 20 条getType, // 拉取比群 @ 消息更早的消息userID,groupID // 拉取群聊消息lastMsgSeq,// 从群 @ 消息开始拉取,包括群 @ 消息);// 拉取群 @ 消息之后的消息TencentImSDKPlugin.v2TIMManager.getMessageManager().getHistoryMessageList(count, // 拉取 20 条HistoryMsgGetTypeEnum.V2TIM_GET_CLOUD_NEWER_MSG, // 拉取比群 @ 消息更晚的消息userID,groupID // 拉取群聊消息lastMsgSeq,// 从群 @ 消息开始拉取,包括群 @ 消息);
onlineUserOnly
字段设置为 YES/true
。count
,如果还是不能解决问题,欢迎加入 QQ 群(437955475)反馈。
本页内容是否解决了您的问题?