主要页面的 ViewModel 中可重载的方法

大约 2 分钟

主要页面的 ViewModel 中可重载的方法

环信即时通讯 IM SDK 回调事件监听以及 UI 触发事件的监听均在各自的 ViewModel 中。

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

会话列表

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

方法名用途是否可重载
loadExistLocalDataIfEmptyFetchServer拉取会话列表出现错误时回调方法,此方法会重新获取会话列表。
pin会话列表左滑后点击置顶按钮后触发回调。
unpin会话列表左滑后点击取消置顶按钮后触发回调。
mute会话列表左滑后点击禁言按钮后触发回调。
unmute会话列表左滑后点击取消禁言按钮后触发回调。
delete会话列表左滑后点击删除按钮后触发回调。
read会话列表左滑后点击已读按钮后触发回调。
conversationDidSelected会话列表点击后回调。
moreAction会话列表右滑后点击 ... 回调。
conversationLastMessageUpdate会话列表中会话最后一条消息更新时回调。
playNewMessageSound收到新消息时播放音频方法。
conversationMessageAlreadyReadOnOtherDevice会话中消息在其它设备上已读。
conversationEventDidChanged对会话的多设备操作时间发生变更回调。
mapper映射 ConversationInfo 对象方法。

消息列表

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

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

UI 事件的回调,详见自定义拦截主要页面点击事件

联系人列表

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

方法名用途是否可重载
processFriendDidAgree收到添加联系人对方同意回调。
processFriendRequestDidDecline收到添加联系人对方拒绝回调。
processFriendshipDidRemove收到好友关系被移除回调。
processFriendshipDidAddSuccessful收到好友关系添加成功回调。
processFriendRequestDidReceive收到添加好友申请回调。
contactEventDidChanged联系人多设备事件变更回调。