跳到主要内容

页面事件监听

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

监听会话列表页面事件​

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

使用 RongIM 或 IMCenter 的 setConversationListBehaviorListener 方法设置监听器。

Java
RongIM.setConversationListBehaviorListener(listener);

长按会话事件​

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

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

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

点击会话事件​

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

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

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

点击会话头像事件​

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

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

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

长按会话头像的事件​

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

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

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

监听会话页面事件​

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

使用 RongIM 或 IMCenter 的 setConversationClickListener 方法设置监听器。

Java
IMCenter.setConversationClickListener(listener);

点击消息事件​

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

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

长按消息事件​

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

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

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

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

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

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

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

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

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

点击消息超链接事件​

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

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

点击已读回执状态事件​

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

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

点击常用语按钮事件​

提示

要求 IMKit 版本 ≧ 5.6.3。

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

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