会话列表交互回调协议(ChatListDelegate)

会话列表交互回调协议:ChatListDelegate 属于 Delegate(交互回调)。本页的 props / events / behaviors 来自 sdk-imkit.json → globalUIKit,声明与示例来自 bindings.ios.uikit,不手写漂移。

契约属性(props)​

属性类型可选说明

事件(events)​

事件参数说明
didSelectconversation会话被选中
didLongPressconversation会话被长按
didRequestRefresh—请求刷新

行为(behaviors)​

  • 仅回调、不实现导航
  • 与 ViewController 解耦

公开符号与声明​

语言声明
Swiftprotocol IMPChatListDelegate: AnyObject { func chatList(_ list: IMPChatListViewModel, didSelect conversation: IMPConversation); func chatListDidLongPress(_ list: IMPChatListViewModel, conversation: IMPConversation); func chatListDidRequestRefresh(_ list: IMPChatListViewModel) }
Objective-C@protocol IMPOSGlobalChatListDelegate <NSObject> - (void)chatList:(IMPOSGlobalChatListViewModel *)list didSelectConversation:(IMPOSConversation *)conversation; @optional - (void)chatListDidLongPress:(IMPOSGlobalChatListViewModel *)list conversation:(IMPOSConversation *)conversation; - (void)chatListDidRequestRefresh:(IMPOSGlobalChatListViewModel *)list; @end

使用示例(Swift / Objective-C)​

final class MyChatListDelegate: IMPChatListDelegate {
    func chatList(_ list: IMPChatListViewModel, didSelect conversation: IMPConversation) { /* 宿主实现 */ }
    func chatListDidLongPress(_ list: IMPChatListViewModel, conversation: IMPConversation) { /* 宿主实现 */ }
    func chatListDidRequestRefresh(_ list: IMPChatListViewModel) { /* 宿主实现 */ }
    init() {}
}
@interface MyChatListDelegate : NSObject <IMPOSGlobalChatListDelegate>

@end

@implementation MyChatListDelegate
- (void)chatList:(IMPOSGlobalChatListViewModel *)list didSelectConversation:(IMPOSConversation *)conversation { /* 宿主实现 */ }
- (void)chatListDidLongPress:(IMPOSGlobalChatListViewModel *)list conversation:(IMPOSConversation *)conversation { /* 宿主实现 */ }
- (void)chatListDidRequestRefresh:(IMPOSGlobalChatListViewModel *)list { /* 宿主实现 */ }
@end
示例口径

示例由绑定签名与契约类型生成:构造函数参数、协议方法、属性名均来自契约;实际业务中把示例变量替换为宿主实例即可。

在架构中的位置​

项值
层Delegate(交互回调)
依赖GlobalUIKit -> IMKit -> IMLib(公开接口)
相关组件ChatListViewController

错误处理​

ViewModel 层通过事件上报错误(如 error(err));错误码与处理建议见 Global IM UIKit 错误处理、状态码(运行时 43 条)与 状态码全量对照(440 条)。

相关文档​