获取历史消息
可从本地或远端获取历史消息, 协作中台历史消息会在云端完全保存。
获取指定时间之前的消息
查询比lastMsgTime
小的最靠近的数据
分为仅从远端获取,仅从本地获取,以及结合一起获取
本地远端结合获取
本方法同时会返回本地未发送成功的消息,且消息连续
接口定义
kotlin
fun getHistoryMessagesFromCloud(
chatId: String,
lastMsgTime: Long,
count: Int,
callback: IResultCallback<List<KIMCoreMessage>>
)
参数说明
参数 | 类型 | 说明 |
---|---|---|
chatId | String | 会话 id |
lastMsgTime | Long | 查询历史消息的开始点: 1. 消息对象中的 ctime 2. 传 0 , 表示获取最新 count 条消息 |
count | Int | 获取消息数量。每页最多 20 条 |
callback | IResultCallback < List < KIMCoreMessage >> | 获取历史消息的回调,按照时间降序排列。 |
代码示例
kotlin
val chatId = "12333"
val lastMsgTime = 12312312312
val count = 10
KIMCore.instance().getHistoryMessages(chatId, lastMsgTime, 10, object :IResultCallback<List<KIMCoreMessage>> {
override fun onSuccess(result: List<KIMCoreMessage>?) {
TODO()
}
override fun onError(errorCode: ErrorCode) {
TODO()
}
})
仅从远端获取
本方法不会返回本地未发送成功的消息
接口定义
kotlin
fun getHistoryMessagesFromCloud(
chatId: String,
lastMsgTime: Long,
count: Int,
callback: IResultCallback<List<KIMCoreMessage>>
)
参数说明
参数 | 类型 | 说明 |
---|---|---|
chatId | String | 会话 id |
lastMsgTime | Long | 查询历史消息的开始点: 1. 消息对象中的 ctime 2. 传 0 , 表示获取最新 count 条消息 |
count | Int | 获取消息数量。每页最多 20 条 |
callback | IResultCallback < List < KIMCoreMessage >> | 获取历史消息的回调,按照时间顺序从新到旧排列。 |
代码示例
kotlin
val chatId = "12333"
val lastMsgTime = 12312312312
val count = 10
KIMCore.instance().getHistoryMessagesFromCloud(chatId, lastMsgTime, 10, object :IResultCallback<List<KIMCoreMessage>> {
override fun onSuccess(result: List<KIMCoreMessage>?) {
TODO()
}
override fun onError(errorCode: ErrorCode) {
TODO()
}
})
仅从本地获取
会返回本地未发送成功的消息。速度最快,但是消息可能断层
接口定义
kotlin
fun getHistoryMessagesFromLocal(
chatId: String,
lastMsgTime: Long,
count: Int,
callback: IResultCallback<List<KIMCoreMessage>>
)
参数说明
参数 | 类型 | 说明 |
---|---|---|
chatId | String | 会话 id |
lastMsgTime | Long | 查询历史消息的开始点: 1. 消息对象中的 ctime 2. 传 0 , 表示获取最新 count 条消息 |
count | Int | 获取消息数量。每页最多 20 条 |
callback | IResultCallback < List < KIMCoreMessage >> | 获取历史消息的回调,按照时间顺序从新到旧排列。 |
代码示例
kotlin
KIMCore.instance().getHistoryMessagesFromLocal(chatId, lastMsgTime, 10, object :IResultCallback<List<KIMCoreMessage>> {
override fun onSuccess(result: List<KIMCoreMessage>?) {
TODO()
}
override fun onError(errorCode: ErrorCode) {
TODO()
}
})
获取指定时间之后的消息
查询比lastMsgTime
大的最靠近的数据, 会同时返回本地未发送成功的消息,且消息连续
接口定义
kotlin
fun getHistoryMessagesForward(
chatId: String,
lastMsgTime: Long,
count: Int,
callback: IResultCallback<List<KIMCoreMessage>>
)
参数说明
参数 | 类型 | 说明 |
---|---|---|
chatId | String | 所属会话 id |
lastMsgTime | Long | 查询历史消息的开始点,往大于该时间点的方向查询,如果传 0,返回最旧的一页 |
count | Int | 查询个数 大于0,且不超过100 |
callback | IResultCallback<List<KIMCoreMessage>> | 回调,按照时间降序排列。 |
代码示例
kotlin
KIMCore.instance().getHistoryMessagesForward(chatId, lastMsgTime, 10, new IResultCallback<List<KIMCoreMessage>>() {
@Override
public void onSuccess(List<KIMCoreMessage> result) {
}
@Override
public void onError(ErrorCode errorCode) {
}
});
获取指定消息
能够指定同个会话中的多个消息 id,同时返回对应的消息数据
接口定义
kotlin
fun getBatchMsgs(
chatId: String,
msgIds: List<String>,
callback: IResultCallback<List<KIMCoreMessage>>
)
参数说明
参数 | 类型 | 说明 |
---|---|---|
chatId | String | 指定会话 id |
msgIds | List<String> | 批量消息 id |
callback | IResultCallback<List<KIMCoreMessage>> | 回调 |
代码示例
kotlin
val chatId = "1111"
val msgIds = listOf("1", "2", "3")
KIMCore.instance().getBatchMsgs(chatId, msgIds, object : IResultCallback<List<KIMCoreMessage>> {
override fun onSuccess(result: List<KIMCoreMessage>?) {
TODO()
}
override fun onError(errorCode: ErrorCode) {
TODO()
}
})