跳到主要内容

版本:5.X

搜索消息(Electron)

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

本文档描述了如何搜索存储在客户端本地的消息。

根据关键字搜索本地消息

提示

从 SDK 5.4.0 开始支持该接口。

调用 electronExtension.searchMessages 根据关键字搜索指定会话中的消息

  • 文本类型消息只支持搜索 content,文件类型消息只支持搜索 name
  • 自定义消息根据 registerMessageType 的 searchProps 参数决定
  • 引用消息不支持搜索
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)
})
参数类型说明
conversationIConversationOption会话
keywordstring关键字
startTimenumber搜索时间, 搜索该时间之前的消息
countnumber获取的数量
  • conversation 字段说明

    参数类型说明
    conversationTypeIConversationType会话类型
    targetIdstring会话 ID
    channelIdnumber频道 ID, 限定搜索指定频道内的消息, 如果不传,则在所有频道中进行搜索

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

提示

从 SDK 5.4.0 开始支持该接口。

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

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)
})
参数类型说明
conversationObject会话,详见下方 conversation 参数说明
optionISearchMessageInTimeRangeOption搜索参数,详见下方 option 参数说明
  • conversation 参数说明

    参数类型说明
    conversationTypeIConversationType会话类型
    targetIdstring会话 ID
  • option 参数说明

    参数类型说明
    keywordstring搜索关键字
    startTimenumber开始时间
    endTimenumber截止时间
    offsetnumber分页搜索时的偏移量,默认为0
    limitnumber每页的数量,默认为 5

根据用户 ID 搜索本地消息

提示

从 SDK 5.7.10 开始支持该接口。

调用 electronExtension.searchMessagesByUser 在指定会话的所有频道中搜索时间范围内的消息

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)
})
参数类型说明
conversationIConversationOption会话
userIdstring用户 id
startTimenumber搜索时间, 搜索该时间之前的消息
countnumber获取的数量