聊天页面拦截点击跳转事件与ViewModel 中可重载的方法

大约 2 分钟

聊天页面拦截点击跳转事件与ViewModel 中可重载的方法

拦截点击跳转事件

对于聊天页面的点击跳转事件,你可以利用原有的逻辑,也可以在原有的逻辑上添加自己的扩展和实现。

你可以继承 MessageListController 并赋值注册到 ComponentsRegister.shared.MessageViewController 中,然后即可重载如下想要拦截的点击事件方法。

方法名用途是否可重载
createNavigation创建导航栏方法
createLoading创建Loading页面方法
navigationClick导航栏所有点击方法
viewDetail查看联系人或群组详情页面
rightItemsAction导航右侧按钮点击方法
pop页面返回上一级方法
messageWillSendFillExtensionInfo消息即将发送前可添加扩展信息方法
filterMessageActions过滤长按后弹出菜单上菜单项的方法
showMessageLongPressedDialog显示消息长按后的菜单
processMessage处理消息长按后弹窗点击事件
editAction点击消息长按后菜单中的编辑后弹出编辑弹窗方法
reportAction点击消息长按后菜单中的举报按钮弹出举报弹窗的方法
messageAttachmentLoading图片视频以及附件消息点击后是否需要显示loading页面方法
messageBubbleClicked消息气泡点击方法
viewContact查看联系人页面
messageAvatarClick消息头像点击
audioDialog显示录制音频弹窗
mentionAction群聊中输入框中输入@符号触发事件
attachmentDialog显示发送图片视频以及文件消息的弹窗
selectFile选择文件
selectPhoto打开相册选择照片
openCamera打开相机拍摄视频照片
selectContact选择联系人发送卡片
openFile打开选择文件
processImagePicker是处理点击选择图片以及视频发送消息方法
documentPickerOpenFile打开文件选择器的方法

ViewModel 中可重载的方法

环信即时通讯 IM SDK 的聊天页面的回调事件监听以及 UI 触发事件的监听在聊天页面的 ViewModel 中。

你可以利用原有的逻辑,也可以在原有的逻辑上添加自己的扩展和实现。

你可以继承 MessageListViewModel 并赋值注册到 ComponentsRegister.shared.MessagesViewModel 中,然后即可重载如下想要拦截的监听方法。

方法名用途是否可重载
messageDidReceived收到新消息回调。
messageDidRecalled收到消息撤回回调。
onMessageDidEdited收到消息被编辑回调。
messageStatusChanged收到消息状态发生变更回调。
messageAttachmentStatusChanged收到消息附件状态变更回调。

若在发送前需修改消息,你需要调用 constructMessage 方法重新构造自己的消息。

UI 事件的回调,详见 拦截点击跳转事件

上次编辑于: