跳到主要内容

使用标签管理会话

注意

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

SDK 支持为会话打上一个或多个标签,适用于会话分组、筛选会话列表等场景。本文档介绍与标签管理相关的接口调用方式及参数说明。

获取指定会话的标签

调用 getTagsFromConversation 方法,获取指定会话已关联的标签列表。

接口

JavaScript
RongIMLib.getTagsFromConversation(conversation)

参数说明

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

示例代码

JavaScript
const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: 'targetId',
};
const res = await RongIMLib.getTagsFromConversation(conversation);
console.log('获取会话下的标签结果:', res);

添加会话到指定标签

调用 addConversationsToTag 方法,可将一个或多个会话加入到指定标签下。

提示
  • 每个标签最多可关联 1000 个会话。
  • 超出数量限制时,新增的会话仍可加入,但将自动移除最早加入该标签的会话。
  • 同一个会话可关联多个标签。

接口

JavaScript
RongIMLib.addConversationsToTag(tagId, conversations)

参数说明

参数类型必填说明
tagIdstring标签 ID
conversationsIConversationOption[]会话对象数组

示例代码

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

const res = await RongIMLib.addConversationsToTag(tagId, conversations);
console.log('添加会话到指定标签结果:', res);

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

提示

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

调用 removeConversationsFromTag 方法,可将多个会话从指定标签中移除。

接口

JavaScript
RongIMLib.removeConversationsFromTag(tagId, conversations)

参数说明

参数类型必填说明
tagIdstring标签 ID
conversationsIConversationOption[]会话对象数组

示例代码

JavaScript
const tagId = 'tagId';
const conversations = [{
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: 'targetId',
}];
const res = await RongIMLib.removeConversationsFromTag(tagId, conversations);
console.log('从指定标签中删除多个会话果:', res);

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

提示

此操作仅解除会话与标签的关联,不会删除标签本身。

调用 removeTagsFromConversation 方法,可将多个标签从指定会话中移除。

接口

JavaScript
RongIMLib.removeTagsFromConversation(conversation, tagIds)

参数说明

参数类型必填说明
conversationIConversationOption目标会话
tagIdsstring[]待移除的标签 ID 数组

示例代码

JavaScript
const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: 'targetId',
};
const tagIds = ['tagId1', 'tagId2'];
const res = await RongIMLib.removeTagsFromConversation(conversation, tagIds);
console.log('从指定会话中删除多个标签结果:', res);

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

提示

此操作仅解除会话与标签的关联,不会删除标签本身。

调用 removeTagFromConversations 方法,可将指定标签从多个会话中移除。

接口

JavaScript
RongIMLib.removeTagFromConversations(tagId, conversations)

参数说明

参数类型必填说明
tagIdstring标签 ID
conversationsIConversationOption[]会话对象数组

示例代码

JavaScript
const tagId = 'tagId';
const conversations = [{
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: 'targetId',
}];
const res = await RongIMLib.removeTagFromConversations(tagId, conversations);
console.log('从多个会话中删除指定的标签结果:', res);

分页获取标签下会话列表

提示

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

调用 getConversationsFromTagByPage 方法,分页获取指定标签下的会话列表。

接口

JavaScript
RongIMLib.getConversationsFromTagByPage(tagId, count, timestamp)

参数说明

参数类型必填说明
tagIdstring标签 ID
countnumber每次分页筛选的会话数量,注意:这里的 count 并不是指返回结果的数量
timestampnumber会话中 lasterMessage 的时间戳
提示

web 端最多能获取到 1000 条会话。

若需一次性获取指定标签下全部会话,可将 count 设置为 1000,timestamp 设置为 0

示例代码

JavaScript
const tagId = 'tagId';
const count = 10;
const timestamp = 0;
const res = await RongIMLib.getConversationsFromTagByPage(tagId, count, timestamp);
console.log('分页获取标签下会话列表结果:', res);

根据标签获取未读消息数

调用 getUnreadCountByTag 方法,获取指定标签下所有会话的未读消息总数。

接口

JavaScript
RongIMLib.getUnreadCountByTag(tagId, containMuted)

参数说明

参数类型必填说明
tagIdstring标签 ID
containMutedboolean是否包含免打扰

示例代码

JavaScript
const tagId = 'tagId';
const containMuted = false;
const res = await RongIMLib.getUnreadCountByTag(tagId, containMuted);
console.log('根据标签获取未读消息数结果:', res);

设置标签中会话置顶

调用 setConversationToTopInTag 方法,可在指定标签下设置会话置顶状态。

提示
  • 如果根据标签获取会话,可在获取的会话中可以看到该属性。
  • 标签内的置顶状态与会话列表中的置顶状态相互独立。

接口

JavaScript
RongIMLib.setConversationToTopInTag(tagId, conversation, isTop)

参数说明

参数类型必填说明
tagIdstring标签 ID
conversationIConversationOption目标会话
isTopboolean是否置顶

示例代码

JavaScript
const tagId = 'tagId';
const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: 'targetId',
};
const isTop = true;
const res = await RongIMLib.setConversationToTopInTag(tagId, conversation, isTop);
console.log('设置标签中会话置顶结果:', res);