跳到主要内容

页面事件监听

IMKit 支持监听会话列表页面和会话页面上的点击、长按事件,应用程序可以相应的方法中拦截并实现自定义需求。

监听会话列表页面事件

IMKit 提供了会话列表监听器 ConversationListBehaviorListener,可监听会话列表中针对会话 item 和会话头像的长按与点击事件。

使用 RongIMIMCentersetConversationListBehaviorListener 方法设置监听器。

RongIM.setConversationListBehaviorListener(listener);

长按会话事件

在会话列表中长按会话 item 时触发以下方法。SDK 默认弹出菜单选项。

boolean onConversationLongClick(Context context, View view, BaseUiConversation conversation)
参数类型说明
contextContext上下文
viewView触发点击的 View
conversationBaseUiConversation长按的会话

如果需要自定义处理此长按事件,返回 true;否则返回 false,继续执行 SDK 默认逻辑。

点击会话事件

在会话列表中点击会话 item 时触发以下方法。触发该点击事件时,SDK 默认跳转逻辑如下:

  • 如果是聚合会话,跳转到聚合会话列表页面。
  • 如果是非聚合会话,跳转到会话页面。
boolean onConversationClick(Context context, View view, BaseUiConversation conversation)
参数类型说明
contextContext上下文
viewView触发点击的 View
conversationBaseUiConversation点击的会话

如果需要自定义处理此长按事件,返回 true;否则返回 false,继续执行 SDK 默认逻辑。

点击会话头像事件

点击会话头像(图标)时触发以下方法。SDK 没有默认不处理该事件。

boolean onConversationPortraitClick(Context context, Conversation.ConversationType conversationType, String targetId)
参数类型说明
contextContext上下文
conversationTypeConversation.ConversationType会话类型
targetIdString会话 Id

如果需要自定义处理此点击事件,返回 true。否则返回 false,不处理该事件。

长按会话头像的事件

长按会话头像(图标)时触发以下方法。SDK 默认不处理该事件,直接将结果返回给系统。

boolean onConversationPortraitLongClick(Context context, Conversation.ConversationType conversationType, String targetId)
参数类型说明
contextContext上下文
conversationTypeConversation.ConversationType会话类型
targetIdString会话 Id

如果需要自定义处理此长按事件,请返回 true。否则返回 false,不处理该事件。

监听会话页面事件

IMKit 提供了会话列表监听器 ConversationClickListener,可监听会话页面中针对消息 item 和消息头像的长按与点击事件。

使用 RongIMIMCentersetConversationClickListener 方法设置监听器。

IMCenter.setConversationClickListener(listener);

点击消息事件

boolean onMessageClick(Context context, View view, Message message);
参数类型说明
contextContext上下文
viewView触发点击的 View
messageMessage被点击的消息的实体信息

如果用户自己处理了点击后的逻辑处理,则返回 true;否则返回 false,继续执行 SDK 的默认逻辑。

长按消息事件

boolean onMessageLongClick(Context context, View view, Message message);
参数类型说明
contextContext上下文
viewView触发点击的 View
messageMessage被点击的消息的实体信息

如果用户自己处理了长按后的逻辑处理,则返回 true;否则返回 false,继续执行 SDK 默认逻辑。

点击消息上的用户头像事件

boolean onUserPortraitClick(
Context context,
Conversation.ConversationType conversationType,
UserInfo user,
String targetId);
参数类型说明
contextContext上下文
conversationTypeConversation.ConversationType会话类型
userUserInfo被点击的用户的信息
targetIdString会话 Id

如果自己处理了点击后的逻辑处理,则返回 true;否则返回 false,继续执行 SDK 默认逻辑。

长按消息上的用户头像事件

长按消息上的用户头像(图标)时触发以下方法。SDK 默认跳转到 @功能的选择用户界面。

boolean onUserPortraitLongClick(
Context context,
Conversation.ConversationType conversationType,
UserInfo user,
String targetId);
参数类型说明
contextContext上下文
conversationTypeConversation.ConversationType会话类型
userUserInfo被点击的用户的信息
targetIdString会话 Id

如果用户自己处理了点击后的逻辑处理,则返回 true;否则返回 false,继续执行 SDK 的默认逻辑。

点击消息超链接事件

boolean onMessageLinkClick(Context context, String link, Message message);
参数类型说明
contextContext上下文
linkString被点击的链接
messageMessage被点击的消息的实体信息

如果用户自己处理了点击后的逻辑处理,则返回 true;否则返回 false,继续执行 SDK 默认逻辑。

点击已读回执状态事件

boolean onReadReceiptStateClick(Context context, Message message);
参数类型说明
contextContext上下文
messageMessage被点击的消息的实体信息

如果用户自己处理了长按后的逻辑处理,则返回 true;否则返回 false,继续执行 SDK 默认逻辑。

点击常用语按钮事件

提示

要求 IMKit 版本 ≧ 5.6.3。

如果启用了 IMKit 快捷回复 功能,用户在会话页面点击常用语按钮后会弹出快捷回复。如需拦截该点击事件,返回 true,您可以自定义点击常用语按钮后的逻辑;否则返回 false,继续执行 SDK 默认逻辑。

default boolean onQuickReplyClick(Context context) {
return false;
}