统一路由(宿主可替换)(ChatRouter)
统一路由(宿主可替换):ChatRouter 属于 Router(路由,宿主可替换)。本页的 props / events / behaviors 来自 sdk-imkit.json → globalUIKit,声明与示例来自 bindings.ios.uikit,不手写漂移。
契约属性(props)
| 属性 | 类型 | 可选 | 说明 |
|---|---|---|---|
navigation | any | 否 | 宿主导航控制器;默认实现 push / present |
事件(events)
| 事件 | 参数 | 说明 |
|---|---|---|
openChat | conversation | 打开会话 |
openProfile | userId | 打开用户资料 |
行为(behaviors)
- 默认 push/present 实现
- 可注入自定义 router 支持深链
- 路由失败回调
公开符号与声明
| 语言 | 声明 |
|---|---|
| Swift | IMPChatRouter(navigation: UINavigationController?) |
| Objective-C | - (instancetype)initWithNavigation:(UINavigationController *)navigation; |
使用示例(Swift / Objective-C)
IMPChatRouter(navigation: navigationController)IMPOSGlobalChatRouter *chatRouter =
[[IMPOSGlobalChatRouter alloc] initWithNavigation:self.navigationController];示例口径
示例由绑定签名与契约类型生成:构造函数参数、协议方法、属性名均来自契约;实际业务中把示例变量替换为宿主实例即可。
在架构中的位置
| 项 | 值 |
|---|---|
| 层 | Router(路由,宿主可替换) |
| 依赖 | GlobalUIKit -> IMKit -> IMLib(公开接口) |
| 相关组件 | ChatListViewController、ChatViewController |
错误处理
ViewModel 层通过事件上报错误(如 error(err));错误码与处理建议见 Global IM UIKit 错误处理、状态码(运行时 43 条)与 状态码全量对照(440 条)。