页面事件监听
页面事件监听
IMKit 支持监听会话列表页面和会话页面上的点击、长按事件,应用程序可以相应的方法中拦截并实现自定义需求。
监听会话列表页面事件
IMKit 提供了会话列表监听器 ConversationListBehaviorListener,可监听会话列表中针对会话 item 和会话头像的长按与点击事件。
使用 RongIM 或 IMCenter 的 setConversationListBehaviorListener
方法设置监听器。
RongIM.setConversationListBehaviorListener(listener);
已复制
1
长按会话事件
在会话列表中长按会话 item 时触发以下方法。SDK 默认弹出菜单选项。
boolean onConversationLongClick(Context context, View view, BaseUiConversation conversation)
已复制
1
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
view | View | 触发点击的 View |
conversation | BaseUiConversation | 长按的会话 |
如果需要自定义处理此长按事件,返回 true
;否则返回 false
,继续执行 SDK 默认逻辑。
点击会话事件
在会话列表中点击会话 item 时触发以下方法。触发该点击事件时,SDK 默认跳转逻辑如下:
- 如果是聚合会话,跳转到聚合会话列表页面。
- 如果是非聚合会话,跳转到会话页面。
boolean onConversationClick(Context context, View view, BaseUiConversation conversation)
已复制
1
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
view | View | 触发点击的 View |
conversation | BaseUiConversation | 点击的会话 |
如果需要自定义处理此长按事件,返回 true
;否则返回 false
,继续执行 SDK 默认逻辑。
点击会话头像事件
点击会话头像(图标)时触发以下方法。SDK 没有默认不处理该事件。
boolean onConversationPortraitClick(Context context, Conversation.ConversationType conversationType, String targetId)
已复制
1
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
conversationType | Conversation.ConversationType | 会话类型 |
targetId | String | 会话 Id |
如果需要自定义处理此点击事件,返回 true
。否则返回 false
,不处理该事件。
长按会话头像的事件
长按会话头像(图标)时触发以下方法。SDK 默认不处理该事件,直接将结果返回给系统。
boolean onConversationPortraitLongClick(Context context, Conversation.ConversationType conversationType, String targetId)
已复制
1
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
conversationType | Conversation.ConversationType | 会话类型 |
targetId | String | 会话 Id |
如果需要自定义处理此长按事件,请返回 true
。否则返回 false
,不处理该事件。
监听会话页面事件
IMKit 提供了会话列表监听器 ConversationClickListener,可监听会话页面中针对消息 item 和消息头像的长按与点击事件。
使用 RongIM 或 IMCenter 的 setConversationClickListener
方法设置监听器。
IMCenter.setConversationClickListener(listener);
已复制
1
点击消息事件
boolean onMessageClick(Context context, View view, Message message);
已复制
1
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
view | View | 触发点击的 View |
message | Message | 被点击的消息的实体信息 |
如果用户自己处理了点击后的逻辑处理,则返回 true
;否则返回 false
,继续执行 SDK 的默认逻辑。
长按消息事件
boolean onMessageLongClick(Context context, View view, Message message);
已复制
1
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
view | View | 触发点击的 View |
message | Message | 被点击的消息的实体信息 |
如果用户自己处理了长按后的逻辑处理,则返回 true
;否则返回 false
,继续执行 SDK 默认逻辑。
点击消息上的用户头像事件
boolean onUserPortraitClick(
Context context,
Conversation.ConversationType conversationType,
UserInfo user,
String targetId);
已复制
1
2
3
4
5
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
conversationType | Conversation.ConversationType | 会话类型 |
user | UserInfo | 被点击的用户的信息 |
targetId | String | 会话 Id |
如果自己处理了点击后的逻辑处理,则返回 true
;否则返回 false
,继续执行 SDK 默认逻辑。
长按消息上的用户头像事件
长按消息上的用户头像(图标)时触发以下方法。SDK 默认跳转到 @功能的选择用户界面。
boolean onUserPortraitLongClick(
Context context,
Conversation.ConversationType conversationType,
UserInfo user,
String targetId);
已复制
1
2
3
4
5
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
conversationType | Conversation.ConversationType | 会话类型 |
user | UserInfo | 被点击的用户的信息 |
targetId | String | 会话 Id |
如果用户自己处理了点击后的逻辑处理,则返回 true
;否则返回 false
,继续执行 SDK 的默认逻辑。
点击消息超链接事件
boolean onMessageLinkClick(Context context, String link, Message message);
已复制
1
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
link | String | 被点击的链接 |
message | Message | 被点击的消息的实体信息 |
如果用户自己处理了点击后的逻辑处理,则返回 true
;否则返回 false
,继续执行 SDK 默认逻辑。
点击已读回执状态事件
boolean onReadReceiptStateClick(Context context, Message message);
已复制
1
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
message | Message | 被点击的消息的实体信息 |
如果用户自己处理了长按后的逻辑处理,则返回 true
;否则返回 false
,继续执行 SDK 默认逻辑。
点击常用语按钮事件
要求 IMKit 版本 ≧ 5.6.3。
如果启用了 IMKit 快捷回复 功能,用户在会话页面点击常用语按钮后会弹出快捷回复。如需拦截该点击事件,返回 true
,您可以自定义点击常用语按钮后的逻辑;否则返回 false
,继续执行 SDK 默认逻辑。
default boolean onQuickReplyClick(Context context) {
return false;
}
已复制
1
2
3