IMSDK
即时通信 IM 提供全球接入、单聊、群聊、消息推送、资料关系链托管、帐号鉴权等全方位解决方案,并提供完备的 App 接入、后台管理接口。
V2TIMConversationManagerabstract

详细描述

会话接口,包含了会话的获取,删除和更新的逻辑

Public 成员函数

abstract void setConversationListener (V2TIMConversationListener listener)
 
abstract void addConversationListener (V2TIMConversationListener listener)
 
abstract void removeConversationListener (V2TIMConversationListener listener)
 
abstract void getConversationList (long nextSeq, int count, V2TIMValueCallback< V2TIMConversationResult > callback)
 
abstract void getConversation (String conversationID, V2TIMValueCallback< V2TIMConversation > callback)
 
abstract void getConversationList (List< String > conversationIDList, V2TIMValueCallback< List< V2TIMConversation >> callback)
 
abstract void deleteConversation (String conversationID, V2TIMCallback callback)
 
abstract void setConversationDraft (String conversationID, String draftText, V2TIMCallback callback)
 
abstract void pinConversation (String conversationID, boolean isPinned, V2TIMCallback callback)
 
abstract void getTotalUnreadMessageCount (V2TIMValueCallback< Long > callback)
 

成员函数说明

◆ setConversationListener()

abstract void setConversationListener ( V2TIMConversationListener  listener)
abstract

1.1 设置会话监听器

◆ addConversationListener()

abstract void addConversationListener ( V2TIMConversationListener  listener)
abstract

1.2 添加会话监听器

◆ removeConversationListener()

abstract void removeConversationListener ( V2TIMConversationListener  listener)
abstract

1.3 移除会话监听器

◆ getConversationList() [1/2]

abstract void getConversationList ( long  nextSeq,
int  count,
V2TIMValueCallback< V2TIMConversationResult callback 
)
abstract

1.4 获取会话列表

  • 一个会话对应一个聊天窗口,比如跟一个好友的 1v1 聊天,或者一个聊天群,都是一个会话。
  • 由于历史的会话数量可能很多,所以该接口希望您采用分页查询的方式进行调用,每次分页拉取的个数建议为 100 个。
  • 该接口拉取的是本地缓存的会话,如果服务器会话有更新,SDK 内部会自动同步,然后在 V2TIMConversationListener 回调告知客户。
  • 如果会话全部拉取完毕,成功回调里面 V2TIMConversationResult 中的 isFinished 获取字段值为 true。
注意
会话排序规则
  • 5.5.892 及以后版本, 该接口获取的会话列表默认已经按照会话 orderKey 做了排序,orderKey 值越大,代表该会话排序越靠前。
  • 5.5.892 以前版本,该接口获取的会话列表默认已经按照会话 lastMessage -> timestamp 做了排序,timestamp 越大,会话越靠前。
参数
nextSeq分页拉取的游标,第一次默认取传 0,后续分页拉传上一次分页拉取成功回调里的 nextSeq
count分页拉取的个数,一次分页拉取不宜太多,会影响拉取的速度,建议每次拉取 100 个会话

◆ getConversation()

abstract void getConversation ( String  conversationID,
V2TIMValueCallback< V2TIMConversation callback 
)
abstract

1.5 获取单个会话

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")

◆ getConversationList() [2/2]

abstract void getConversationList ( List< String >  conversationIDList,
V2TIMValueCallback< List< V2TIMConversation >>  callback 
)
abstract

1.6 获取指定会话列表

参数
conversationIDList会话唯一 ID 列表,C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")

◆ deleteConversation()

abstract void deleteConversation ( String  conversationID,
V2TIMCallback  callback 
)
abstract

1.7 删除会话

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")
注意
请注意:
  • 删除会话会在本地删除的同时,在服务器也会同步删除。
  • 会话内的消息在本地删除的同时,在服务器也会同步删除。

◆ setConversationDraft()

abstract void setConversationDraft ( String  conversationID,
String  draftText,
V2TIMCallback  callback 
)
abstract

1.8 设置会话草稿

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")

只在本地保存,不会存储 Server,不能多端同步,程序卸载重装会失效。

参数
draftText草稿内容, 为 null 则表示取消草稿

◆ pinConversation()

abstract void pinConversation ( String  conversationID,
boolean  isPinned,
V2TIMCallback  callback 
)
abstract

1.9 设置会话置顶(5.3.425 及以上版本支持)

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: String.format("c2c_%s", "userID");群聊组成方式为: String.format("group_%s", "groupID")
isPinned是否置顶

◆ getTotalUnreadMessageCount()

abstract void getTotalUnreadMessageCount ( V2TIMValueCallback< Long >  callback)
abstract

1.10 获取会话未读总数(5.3.425 及以上版本支持)

注意
  • 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为 V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE 的会话。