Global IM UIKit 路由

`ChatRouter` 把「打开会话 / 打开资料页」从 ViewController 中抽出来,默认实现 push / present,宿主可以替换为自定义路由(深链、分栏、多窗口)。

契约​

属性类型说明
navigationany宿主导航控制器;默认实现 push / present

事件​

事件参数说明
openChatconversation打开会话
openProfileuserId打开用户资料

默认与自定义路由​

Objective-C 示例已隐藏(含未导出符号)

该示例引用了 SDK 头文件未导出的符号(多为 Swift 专用 helper)。请使用下表真实 ObjC 类,或参考对应组件页的 Objective-C 接入说明。

可用 ObjC 类用途
IMPOSClientIMLib 客户端(连接、消息、会话、群组等)
IMPOSChatViewControllerIMKit 会话页(真实 ObjC 类)
IMPOSConversationListViewControllerIMKit 会话列表页(真实 ObjC 类)
IMPOSGlobalChatViewControllerGlobal UIKit 会话页(真实 ObjC 类)
IMPOSGlobalChatListViewControllerGlobal UIKit 会话列表页(真实 ObjC 类)
// ios-imkit/uikit/customization/router
let router = IMPChatRouter(navigation: navigationController)
print(router)

约定​

  • Delegate 只回调,不导航;导航统一走 Router,便于埋点与深链。
  • 深链进入时先冷启动 IMLib 连接,再打开会话;不要在路由层创建第二个客户端。
  • 路由失败(目标不存在 / 无权限)回调宿主提示,不静默失败。
  • 多窗口 / 分栏场景由自定义 Router 决定容器,Global UIKit 不假设导航栈结构。