跳到主要内容

版本:5.X

搜索消息(Electron)

提示

本文档仅适用于 Electron 解决方案,仅限于配合 Electron 模块 (@rongcloud/electron@rongcloud/electron-renderer)使用。

本文档介绍如何使用 SDK 提供的接口,搜索客户端本地存储的消息。

根据关键字搜索本地消息

提示

从 SDK 5.4.0 开始支持该接口。

调用 electronExtension.searchMessages 根据关键字在指定会话中搜索本地消息。

  • 文本类型消息仅支持搜索 content 字段。
  • 文件类型消息仅支持搜索 name 字段。
  • 自定义消息的可搜索字段由 registerMessageType 中的 searchProps 参数决定。

接口

JavaScript
RongIMLib.electronExtension.searchMessages(conversation, keyword, startTime, count)

参数说明

参数类型必填说明
conversationIConversationOption目标会话
keywordstring搜索关键字
startTimenumber搜索该时间之前的消息
countnumber返回的消息数量
messageTypesstring[]指定需搜索的消息类型,5.9.8 版本起支持

示例代码

JavaScript
const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: "<目标用户ID>",
channelId: ""
}
const keyword = '搜索关键字'
const startTime = Date.now()
const count = 10

RongIMLib.electronExtension.searchMessages(conversation, keyword, startTime, count).then(res => {
if (res.code === 0) {
console.log(res.code, res.data)
} else {
console.log(res.code, res.msg)
}
}).catch(error => {
console.log(error)
})

在指定时间范围内搜索本地消息

提示

从 SDK 5.4.0 开始支持该接口。

调用 electronExtension.searchMessageInTimeRange 方法,在指定会话的所有频道内,搜索给定时间范围内的消息。

接口

JavaScript
RongIMLib.electronExtension.searchMessageInTimeRange(conversation, option)

参数说明

参数类型必填说明
conversationIConversationOption目标会话
optionISearchMessageInTimeRangeOption搜索参数

示例代码

JavaScript
const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: "<目标用户ID>"
}
const option = {
keyword: 'hello',
startTime: 0,
endTime: 1632728573423,
offset: 0,
limit: 5
}
RongIMLib.electronExtension.searchMessageInTimeRange(conversation, option).then(res => {
if (res.code === 0) {
console.log(res.code, res.data)
} else {
console.log(res.code)
}
}).catch(error => {
console.log(error)
})

根据用户 ID 搜索本地消息

提示

从 SDK 5.7.10 开始支持该接口。

调用 electronExtension.searchMessagesByUser方法,在指定会话的所有频道中,搜索某个用户发送的历史消息。

接口

JavaScript
RongIMLib.electronExtension.searchMessagesByUser(conversation, userId, startTime, count)

参数说明

参数类型必填说明
conversationIConversationOption目标会话
userIdstring用户 ID
startTimenumber搜索该时间之前的消息
countnumber返回的消息数量

示例代码

JavaScript
const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: "<会话 ID>",
channelId: ""
}
const userId = '用户 ID'
const startTime = Date.now()
const count = 10

RongIMLib.electronExtension.searchMessagesByUser(conversation, userId, startTime, count).then(res => {
if (res.code === 0) {
console.log(res.code, res.data)
} else {
console.log(res.code, res.msg)
}
}).catch(error => {
console.log(error)
})