TIMMsgGetMsgList
功能介绍
获取指定会话的消息列表
从 msg_getmsglist_param_last_msg 指定的消息开始获取本地消息列表,msg_getmsglist_param_count 为要获取的消息数目。msg_getmsglist_param_last_msg 可以不指定,不指定时表示以会话最新的消息为 LastMsg 。
若指定 msg_getmsglist_param_is_ramble 为true则本地消息获取不够指定数目时,会去获取云端漫游消息。
msg_getmsglist_param_is_forward 为true时表示获取比 msg_getmsglist_param_last_msg 新的消息,为false时表示获取比 msg_getmsglist_param_last_msg 旧的消息
拉取 C2C 消息时,只能使用 msg_getmsglist_param_last_msg 作为消息的拉取起点;如果没有指定 msg_getmsglist_param_last_msg,默认使用会话的最新消息作为拉取起点
拉取 Group 消息时,除了可以使用 msg_getmsglist_param_last_msg 作为消息的拉取起点外,也可以使用 msg_getmsglist_param_last_msg_seq 来指定消息的拉取起点,二者的区别在于:
使用 msg_getmsglist_param_last_msg 作为消息的拉取起点时,返回的消息列表里不包含 msg_getmsglist_param_last_msg;
使用 msg_getmsglist_param_last_msg_seq 作为消息拉取起点时,返回的消息列表里包含 msg_getmsglist_param_last_msg_seq 所表示的消息;
在拉取 Group 消息时
如果同时指定了 msg_getmsglist_param_last_msg 和 msg_getmsglist_param_last_msg_seq,SDK 优先使用 msg_getmsglist_param_last_msg 作为消息的拉取起点
如果 msg_getmsglist_param_last_msg 和 msg_getmsglist_param_last_msg_seq,SDK 都未指定,消息的拉取起点分为如下两种情况:
如果设置了拉取的时间范围,SDK 会根据 kTIMMsgGetMsgListParamTimeBegin 所描述的时间点作为拉取起点
如果未设置拉取的时间范围,SDK 默认使用会话的最新消息作为拉取起点
参数详解
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
msgGetMsgListParams | MsgGetMsgListParams | 是 | 获取指定会话的消息列表的参数 |
返回模板
Promise<commonResult<Array<Json_value_msg>>>
{
code: TIMResult | TIMErrCode;
desc?: string | undefined;
json_param?: Array<Json_value_msg> | undefined;
json_params?: Array<Json_value_msg> | undefined; // 兼容
user_data?: string | undefined;
}
返回值详解
名称 | 数值类型 | 描述 |
---|---|---|
code | TIMResult | TIMErrCode | 返回状态码 |
desc | string | undefined | 返回描述 |
json_param | Array< Json_value_msg > | undefined | 根据具具体接口返回 |
json_params | Array< Json_value_msg > | undefined | 兼容的字段,某些情况下会返回这个,根据具体接口返回 |
user_data | string | undefined | ImSDK负责透传的用户自定义数据,未做任何处理 |
代码示例
import TimRender from "im_electron_sdk/dist/renderer";
const timRenderInstance = new TimRender();
import { MsgGetMsgListParams,Json_get_msg_param,userProfileCustom,GroupMemberInfoCustemString,GroupMemberInfo,userProfile,Json_value_msg } from "im_electron_sdk/dist/interfaces";
let convId = ''
let convType=0
let userProfileCustom:userProfileCustom = {
user_profile_custom_string_info_key: '',
user_profile_custom_string_info_value: 'string;'
}
let groupMemberCustom : GroupMemberInfoCustemString = {
group_member_info_custom_string_info_key: '',
group_member_info_custom_string_info_value: '',
}
let groupMemberInfo:GroupMemberInfo ={
group_member_info_identifier: '',
group_member_info_join_time: 0,
group_member_info_member_role: 0,
group_member_info_msg_flag: 0,
group_member_info_msg_seq: 0,
group_member_info_shutup_time: 0,
group_member_info_name_card: '',
group_member_info_custom_info: [groupMemberCustom]
}
let senderProfile:userProfile = {
user_profile_add_permission: 0,
user_profile_birthday:0,
user_profile_custom_string_array: [userProfileCustom],
user_profile_face_url: '',
user_profile_gender: 0,
user_profile_identifier:'',
user_profile_language: 0,
user_profile_level: 0,
user_profile_location: '',
user_profile_nick_name: '',
user_profile_role: 0,
user_profile_self_signature: '',
}
let last_msg:Json_value_msg = {
message_elem_array: [{
elem_type: 1,
text_elem_content:'',
}],
message_conv_id: '',
message_conv_type: 0,
message_sender: '',
message_priority: 0,
message_client_time: 0,
message_server_time: 0,
message_is_from_self: false,
message_platform: 0,
message_is_read: false,
message_is_online_msg:false,
message_status: 0,
message_custom_int: 0,
message_custom_str: '',
message_is_excluded_from_unread_count: false,
message_group_at_user_array: [''],
message_is_forward_message: false,
message_sender_profile: senderProfile,
message_sender_group_member_info: groupMemberInfo,
message_offline_push_config: {}
}
let params : Json_get_msg_param = {
msg_getmsglist_param_last_msg: last_msg, //选填
msg_getmsglist_param_count: 0, //选填
msg_getmsglist_param_is_ramble: true, //选填
msg_getmsglist_param_is_forward: false, //选填
msg_getmsglist_param_last_msg_seq:0, //选填
msg_getmsglist_param_time_begin: 0, //选填
msg_getmsglist_param_time_period: 0, //选填
}
let param:MsgGetMsgListParams = {
conv_id: convId, //必填
conv_type: convType, //必填
params: params, //必填
user_data: '' //选填
}
const {code} = await timRenderInstance.TIMMsgGetMsgList(param);
if(code == 0){
// 成功
}