全部文档

( 最近更新时间: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.移除
/**
* 移除标签
* @param tagId 标签 id
* @param callback 移除标签回调
*/
public removeTag (tagId: string, callback: ICallback)
已复制
1
2
3
4
5
6
# 3.编辑
/**
* 编辑标签
* @param tag 标签信息
* @param callback 编辑标签回调
*/
public updateTag (tag: ITagParam, callback: ICallback)
 
已复制
1
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
# 5.用户标签多端同步

说明:该回调不会给当前操作设备回调,只会给其他的多端设备回调

interface ITagListener {
  onChanged(): void
}

/**
* 设置会话标签更改时的回调
* <p>当用户在其它端添加移除更新标签时会触发此监听器,用于多端之间的信息同步。
* 收到此回调,可调用 getTagList 获取最新标签信息
* <p>请在初始化之后,连接之前调用该方法
*/
setTagListener (listener: ITagListener) 
已复制
1
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. 删除指定标签中某些会话功能
/**
* 删除指定标签中某些会话功能
* @param tagId 标签 id
* @param conversations 要删除的会话列表
* @param callback 回调
*/
public removeTagForConversations (tagId: string, conversations: IConversationOption[], callback: ICallback) 
已复制
1
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
# 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
# 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
# 6. 按标签获取未读消息数
/**
* 根据标签获取未读消息数
* @param tagId 标签id
* @param containMuted 是否包含免打扰
* @param callback 回调
*/
public getUnreadCountByTag (tagId: string, containMuted: boolean, callback: ICallback<number>)
已复制
1
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
# 8. 用户会话标签多端同步
/**
* 会话中tag状态多端同步监听
*/
setConversationTagListener (listener: ITagListener)
已复制
1
2
3
4

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助