外观
SDK 与 UIKit 选型
根据产品界面和通话需求选择组件。IM 与 Call 分开,逻辑与界面分开;只需要聊天时,不必引入音视频媒体依赖。
四类组件
| 组件 | 主要职责 | 由宿主应用提供 |
|---|---|---|
| IM SDK | Session、连接、消息与会话状态、联系人、群、同步、历史、本地存储和附件传输 | 业务登录、IM Session、部署地址、应用生命周期 |
| IM UIKit | 会话、聊天、联系人、群等界面,消息展示、输入与操作 | 当前用户资料、导航、品牌配置及必要业务回调 |
| Call SDK | 通话信令、状态、媒体连接、通话记录及平台适配 | 配套媒体服务、业务权限与平台配置 |
| Call UIKit | 来电、呼出、单聊/群聊通话、成员选择、控制条与小窗 | 页面呈现方式、宿主导航和权限交互 |
UIKit 消费 SDK 的公开快照与事件。它不维护另一份消息数据库,也不代替客户后端签发登录凭据。
按需求选择
| 项目现状 | 推荐路线 |
|---|---|
| 没有聊天 UI,希望先完成接入 | IM UIKit 与其配套 IM SDK |
| 已有聊天界面,或交互高度定制 | IM SDK,使用公开接口与控制器 |
| 在聊天基础上增加语音视频 | 增加 Call SDK;需要默认通话页时再接 Call UIKit |
| 需要自己的通话界面 | Call SDK 管理状态和媒体,宿主实现展示 |
| 想先预览界面与交互 | 查看 Demo 体验中心;正式集成仍按所需组件选择 |
微信原生小程序和 uni-app 微信目标使用 IM SDK 与聊天界面组件,不提供实时通话组件。
依赖方向
text
宿主应用 → IM UIKit → IM SDK
宿主应用 → Call UIKit → Call SDK → IM SDK
↘ IM UIKit以上是 Flutter 四包的依赖组织。其他平台沿用 IM/Call、逻辑/界面分离的原则,具体制品和媒体依赖以各平台授权包说明为准。
Flutter 包名为 mixinim_sdk、mixinim_uikit、mixinim_call_sdk 和 mixinim_call_uikit。四包按配套版本交付,不应随意混用不同版本。公开包名用于说明接入方式,不表示已在公共包仓库提供下载。
Demo 与 SDK 的区别
Demo 重点展示界面与交互,Web 与 H5 分别提供独立入口;小程序界面可通过 H5 预览。
作为授权交付的参考宿主,Demo 将业务登录、账号安全、导航、个人中心、偏好设置和通信组件组合成完整应用。客户可以复用获授权的参考宿主,也可以将 Demo 业务服务替换为自己的后端。
例如,登录表单由宿主提供;IM Session 由宿主后端取得;SDK 管理消息状态;UIKit 渲染聊天页。参考宿主中的账号设置和业务页面,可按项目需要复用或替换。
如何决定先做哪条路线
先用一个业务账号、一个目标平台完成登录、收发、历史与退出,再增加联系人、群和媒体。品牌定制建议从主题配置开始,复杂业务卡片进入扩展接入。