跳到主要内容

使用标签管理会话

在使用标签管理会话之前,请确保您已创建了标签。详见 创建与管理会话标签

SDK 支持使用一个或多个标签标记会话,可用于会话的分组显示、获取会话列表等操作,并提供了多个接口用于移除会话上的标签。

会话标签还支持一系列高级功能,包括按照标签获取会话列表、按照标签获取标签下所有会话的消息未读数,以及在特定标签下设置某个会话置顶。

获取指定会话的标签

调用 getTagsFromConversation 获取指定会话上的标签。

const conversation = {
conversationType: 1,
targetId: '<会话Id>',
channelId: ''
}
RongIMLib.getTagsFromConversation(conversation).then(({code, tags}) => {
console.log(code, tags);
});
参数类型必填说明
conversationIConversationOption会话

添加会话到指定标签

调用 addConversationsToTag 可使用单个标签标记一个或多个会话。

提示
  • 每个标签下最多可以添加 1000 个会话。
  • 如果标签下已添加 1000 个会话,继续在该标签下添加会话仍会成功,但会导致最早添加标签的会话被移除标签。
  • 同一个会话可以设置多个不同的标签。
const conversations = [{
conversationType: 1,
targetId: '<会话Id_1>',
channelId: ''
}, {
conversationType: 1,
targetId: '<会话Id_2>',
channelId: ''
}];

RongIMLib.addConversationsToTag('<标签Id>', conversations).then(({ code }) => {
console.log(code);
})
参数类型必填说明
tagIdstring标签Id
conversationsIConversationOption[]会话 IConversationOption 的数组。

从指定标签中删除多个会话

提示

此操作仅解除会话与标签的关系,并不会删除会话数据。

调用 removeConversationsFromTag 从指定标签中删除多个会话。

const conversations = [{
conversationType: 1,
targetId: '<会话Id_1>',
channelId: ''
}, {
conversationType: 1,
targetId: '<会话Id_2>',
channelId: ''
}];

RongIMLib.removeConversationsFromTag('<标签Id>', conversations).then(({ code }) => {
console.log(code);
});
参数类型必填说明
tagIdstring标签Id
conversationsIConversationOption[]会话 IConversationOption 的数组。

从指定会话中删除多个标签

提示

此操作仅解除会话与标签的关系,并不会删除标签数据。

调用 removeTagsFromConversation 从指定会话中删除多个标签。

const conversation = {
conversationType: 1,
targetId: '<会话Id>',
channelId: ''
}
RongIMLib.removeTagsFromConversation(conversation, ['tagId_1', 'tagId_2']).then(({code}) => {
console.log(code);
});
参数类型必填说明
conversationIConversationOption会话
tagIdsstring[]标签 ID 集合

从多个会话中删除指定的标签

提示

此操作仅解除会话与标签的关系,并不会删除标签数据。

调用 removeTagFromConversations 从多个会话中删除指定的标签。

const conversations = [{
conversationType: 1,
targetId: '<会话Id_1>',
channelId: ''
}, {
conversationType: 1,
targetId: '<会话Id_2>',
channelId: ''
}];

RongIMLib.removeTagFromConversations('<标签Id>', conversations).then(({code}) => {
console.log(code);
})
参数类型必填说明
tagIdstring标签Id
conversationsIConversationOption[]会话 IConversationOption 的数组。

分页获取标签下会话列表

提示

从 SDK 版本 5.7.0 开始,该接口的返回数据类型由 IReceivedConversationByTag 变更为 IAReceivedConversationByTag

调用 getConversationsFromTagByPage 分页获取标签下会话列表。

RongIMLib.getConversationsFromTagByPage('<标签Id>', 10, 1640869971655).then(({code, data}) => {
console.log(code, data);
})
参数类型必填说明
tagIdstring标签 ID
countnumber获取数量
startTimenumber会话中消息的时间戳

根据标签获取未读消息数

调用 getUnreadCountByTag 根据标签获取未读消息数。

RongIMLib.getUnreadCountByTag('<标签Id>', true).then(({code, data}) => {
console.log(code, data);
})
参数类型必填说明
tagIdstring标签Id
containMutedboolean是否包含免打扰

设置标签中会话置顶

调用 setConversationToTopInTag 设置在指定标签下置顶的会话。如果根据标签获取会话,可在获取的会话中可以看到该属性。请注意与会话列表中的会话置顶相区分。

const conversation = {
conversationType: 1,
targetId: '<会话Id>',
channelId: ''
}
RongIMLib.setConversationToTopInTag('<标签Id>', conversation, true).then(({code}) => {
console.log(code);
})
参数类型必填说明
tagIdstring标签 ID
conversationIConversationOption会话
isTopboolean置顶状态