( 最近更新时间:2021-04-15 16:00:00 )
# 会话分组V2
SDK 从 2.8.0 版本开始支持会话标签功能。
会话标签用于对会话进行分组。用户设置会话标签,用于会话的分组显示。
用户可以按照标签获取会话列表,按照标签获取标签下所有会话的消息未读数,在特定标签下设置某个会话置顶。
每个用户最多可以创建 20 个标签,每个标签下最多可以添加 1000 个会话。
同一个会话可以设置多个不同的标签。
# 一、标签管理功能接口
# 1.创建
interface ITagParam { tagId: string; // 标签唯一标识,长度不超过 10 个字 tagName: string; // 标签名称,长度不超过 15 个字 } interface ICallback { onSuccess: Function, onError: Function } /** * 创建标签 * @param tag 标签信息 * @param callback 创建标签回调 */ public createTag (tag: ITagParam, callback: ICallback)
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 2.移除
/** * 移除标签 * @param tagId 标签 id * @param callback 移除标签回调 */ public removeTag (tagId: string, callback: ICallback)
已复制
1
2
3
4
5
6
2
3
4
5
6
# 3.编辑
/** * 编辑标签 * @param tag 标签信息 * @param callback 编辑标签回调 */ public updateTag (tag: ITagParam, callback: ICallback)
已复制
1
2
3
4
5
6
7
2
3
4
5
6
7
# 4.获取标签列表
interface ITagInfo { tagId: string; tagName: string; conversationCount: number; // 标签下的会话数量 createdTime?: number; } /** * 获取标签列表 * @param callback 获取标签列表回调 */ public getTagList (callback: ICallback<ITagInfo[]>)
已复制
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 5.用户标签多端同步
说明:该回调不会给当前操作设备回调,只会给其他的多端设备回调
interface ITagListener { onChanged(): void } /** * 设置会话标签更改时的回调 * <p>当用户在其它端添加移除更新标签时会触发此监听器,用于多端之间的信息同步。 * 收到此回调,可调用 getTagList 获取最新标签信息 * <p>请在初始化之后,连接之前调用该方法 */ setTagListener (listener: ITagListener)
已复制
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 二、针对会话设置标签功能接口
# 1. 添加会话到一个标签
interface IConversationOption { type: ConversationType; targetId: string; } /** * 添加会话到一个标签 * @param tagId 标签 ID * @param conversations 要添加的会话列表 * @param callback 添加会话到一个标签回调 */ public addTagForConversations (tagId: string, conversations: IConversationOption[], callback: ICallback)
已复制
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 2. 删除指定标签中某些会话功能
/** * 删除指定标签中某些会话功能 * @param tagId 标签 id * @param conversations 要删除的会话列表 * @param callback 回调 */ public removeTagForConversations (tagId: string, conversations: IConversationOption[], callback: ICallback)
已复制
1
2
3
4
5
6
7
2
3
4
5
6
7
# 3. 删除指定会话中的某些标签
/** * 删除指定会话中某些标签 * @param conversation 会话 * @param tagIds 标签 id 列表 * @param callback 回调 */ public removeTagsForConversation (conversation: IConversationOption, tagIds: string[], callback: ICallback)
已复制
1
2
3
4
5
6
7
2
3
4
5
6
7
# 4. 获取指定会话下的所有标签
interface IConversationTag { tagId: string; tagName?: string; createdTime?: number; isTop?: boolean; } /** * 获取指定会话下的所有标签 * @param conversation 会话信息 * @param callback 回调 */ public getTagsForConversation (conversation: IConversationOption, callback: ICallback<IConversationTag[]>)
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 5. 分页获取指定标签下会话列表
/** * 分页获取指定标签下会话列表 * @param tagId 标签 id * @param count 从前 count 数量中查找携带该标签的会话,与移动端有差异 * @param startTime 会话中最后一条消息时间戳 * @param callback 回调 */ public getConversationListByTag (tagId: string, count: number, startTime: number, callback: ICallback<IV2ConversationContainTag[]>)
已复制
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 6. 按标签获取未读消息数
/** * 根据标签获取未读消息数 * @param tagId 标签id * @param containMuted 是否包含免打扰 * @param callback 回调 */ public getUnreadCountByTag (tagId: string, containMuted: boolean, callback: ICallback<number>)
已复制
1
2
3
4
5
6
7
2
3
4
5
6
7
# 7. 设置标签中会话置顶
注意:此处修改的是 Conversation.isTopInTag(会话标签关系表的置顶字段) 而不是 Conversation.isTop(会话表的置顶字段)
/** * 设置标签中会话置顶 * @param tagId 标签id * @param conversation 会话 * @param status 状态 * @param callback 回调 */ public setConversationStatusInTag (tagId: string, conversation: IConversationOption, status: { isTop: boolean }, callback: ICallback)
已复制
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 8. 用户会话标签多端同步
/** * 会话中tag状态多端同步监听 */ setConversationTagListener (listener: ITagListener)
已复制
1
2
3
4
2
3
4