跳到主要内容

会话置顶

IMKit 提供设置会话置顶与展示置顶会话。

(width=250)

用法

设置会话置顶后,该状态将会被同步到服务端。融云会为用户自动在设备间同步会话置顶的状态数据。客户端可以通过监听器获取同步通知,也可以主动获取最新数据。

注意:同步置顶会话默认开启,但是如果是空会话,从版本5.10.1开始默认不同步。如需开启空会话同步,请在InitOption中使用enableSyncEmptyTopConversation接口设置,参数传入true开启空会话同步,传入false关闭空会话同步。

定制化

如果 IMKit 默认实现的功能不满足需求,您可以使用 IMKit 提供的 API。

设置会话置顶

设置会话置顶后,会话将在会话列表页面置顶显示。所有置顶会话按照会话时间降序排列。

IMCenter.getInstance().setConversationToTop(conversationType, targetId, isTop, needCreate, callback);
参数类型说明
conversationTypeConversationType会话类型
targetIdString会话 Id
isTopboolean是否置顶, true 为置顶, false 为取消置顶
needCreateboolean会话不存在时,是否创建会话
callbackResultCallback<Boolean>回调接口

客户端一般通过本地消息数据自动生成会话与会话列表。如果需要置顶的会话在本地尚不存在,您可以通过 needCreate 参数创建会话。

ConversationType conversationType = ConversationType.PRIVATE;
String targetId = " 会话 Id ";
boolean isTop = true;
boolean needCreate = true;

IMCenter.getInstance().setConversationToTop(conversationType, targetId, isTop, needCreate, new
ResultCallback<Boolean>() {

@Override
public void onSuccess(Boolean success) {

}

@Override
public void onError(RongIMClient.ErrorCode ErrorCode) {

}
}) ;

监听置顶状态同步

即时通讯业务支持会话状态(置顶状态数据和免打扰状态数据)同步机制。设置会话状态同步监听器后,如果会话状态改变,可在本端收到通知。

会话的置顶和免打扰状态数据同步后,SDK 会触发 ConversationStatusListeneronStatusChanged 方法。详细说明可参见多端同步免打扰/置顶

public interface ConversationStatusListener {
void onStatusChanged(ConversationStatus[] conversationStatus);
}

获取会话置顶状态与置顶会话

您可以从客户端主动获取会话置顶状态数据和置顶会话,但 IMKit SDK 未直接提供相关方法,您需要使用 IMLib 中提供的方法。

详见 IMLib 文档会话置顶 中的获取会话置顶状态获取置顶会话列表