设置与使用会话标签
在使用标签管理会话之前,请确保您已创建了标签。详见 创建与管理会话标签。
SDK 支持使用一个或多个标签标记会话,可用于会话的分组显示、获取会话列表等操作,并提供了多个接口用于移除会话上的标签。
会话标签还支持一系列高级功能,包括按照标签获取会话列表、按照标签获取标签下所有会话的消息未读数,以及在特定标签下设置某个会话置顶。
获取指定会话的标签
调用 getTagsFromConversation 获取指定会话上的标签。
const conversation = {
conversationType: 1,
targetId: '<会话Id>',
channelId: ''
}
RongIMLib.getTagsFromConversation(conversation).then(({code, tags}) => {
console.log(code, tags);
});
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
conversation | IConversationOption | 是 | 会话 |
添加会话到指定标签
调用 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);
})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
tagId | string | 是 | 标签Id |
conversations | IConversationOption[] | 是 | 会话 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);
});
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
tagId | string | 是 | 标签Id |
conversations | IConversationOption[] | 是 | 会话 IConversationOption 的数组。 |
从指定会话中删除多个标签
提示
此操作仅解除会话与标签的关系,并不会删除标签数据。
调用 removeTagsFromConversation 从指定会话中删除多个标签。
const conversation = {
conversationType: 1,
targetId: '<会话Id>',
channelId: ''
}
RongIMLib.removeTagsFromConversation(conversation, ['tagId_1', 'tagId_2']).then(({code}) => {
console.log(code);
});
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
conversation | IConversationOption | 是 | 会话 |
tagIds | string[] | 是 | 标签 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);
})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
tagId | string | 是 | 标签Id |
conversations | IConversationOption[] | 是 | 会话 IConversationOption 的数组。 |
分页获取标签下会话列表
提示
从 SDK 版本 5.7.0 开始,该接口的返回数据类型由 IReceivedConversationByTag 变更为 IAReceivedConversationByTag。
调用 getConversationsFromTagByPage 分页获取标签下会话列表。
RongIMLib.getConversationsFromTagByPage('<标签Id>', 10, 1640869971655).then(({code, data}) => {
console.log(code, data);
})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
tagId | string | 是 | 标签 ID |
count | number | 是 | 获取数量 |
startTime | number | 是 | 会话中消息的时间戳 |
根据标签获取未读消息数
调用 getUnreadCountByTag 根据标签获取未读消息数。
RongIMLib.getUnreadCountByTag('<标签Id>', true).then(({code, data}) => {
console.log(code, data);
})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
tagId | string | 是 | 标签Id |
containMuted | boolean | 是 | 是否包含免打扰 |
设置标签中会话置顶
调用 setConversationToTopInTag 设置在指定标签下置顶的会话。如果根据标签获取会话,可在获取的会话中可以看到该属性。请注意与会话列表中的会话置顶相区分。
const conversation = {
conversationType: 1,
targetId: '<会话Id>',
channelId: ''
}
RongIMLib.setConversationToTopInTag('<标签Id>', conversation, true).then(({code}) => {
console.log(code);
})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
tagId | string | 是 | 标签 ID |
conversation | IConversationOption | 是 | 会话 |
isTop | boolean | 是 | 置顶状态 |