Skip to content
密信 IM · 开发文档

Flutter 接入 ​

密信 IM 开发版 5.0 的 Flutter 四包面向 Android/iOS。默认 IM 运行时使用 Dart,IM SDK 不包含 Widget、页面或路由;标准界面与通话能力独立提供。

环境与组件 ​

项目环境与配套要求
产品与组件版本开发版 5.0 产品体系,组件包版本按授权清单配套
Flutter / DartFlutter ≥ 3.41.9;Dart ≥ 3.11.5 且 < 4.0.0
系统Android API 24 起;iOS 15.5 起
组件mixinim_sdk、mixinim_uikit、mixinim_call_sdk、mixinim_call_uikit

四包共用账号、Session 与通信状态,可按聊天界面和通话需求选择依赖。

取得并引用授权包 ​

授权包保留四包的相邻目录与配套版本。以下示例将套件解压到应用的 vendor/mixinim/packages/,使用本地路径引用;依赖版本由包内清单确定。

yaml
dependencies:
  mixinim_sdk:
    path: vendor/mixinim/packages/mixinim_sdk

需要标准聊天界面时依赖同版 mixinim_uikit,它会导出 IM SDK 公共入口;需要通话界面时再增加 mixinim_call_uikit。保持授权包中的依赖来源与配套关系。

初始化与连接 ​

先由你的业务后端取得当前用户、设备与平台绑定的 Session。宿主账号控制器先执行 final sdk = MixinImSdk.create(); 并保留实例,再调用下面的初始化与连接函数。函数不创建或转移实例所有权,也不在客户端生成登录凭据:

dart
import 'package:mixinim_sdk/mixinim_sdk.dart';

Future<void> connectIm(
  MixinImSdk sdk,
  MixinImConfig config,
  MixinImSession session,
) async {
  await sdk.initialize(config);
  await sdk.connect(session);
}

config 配置客户的 REST/WebSocket 地址、存储命名空间和 refreshSession 回调。session 来自宿主认证结果,不能复用其他设备的绑定。初始化或连接失败时,宿主仍持有 sdk,可按错误类型处理;确定放弃该实例或退出账号时执行 await sdk.dispose(),不要在失败后直接丢弃引用并新建实例。完整顺序见生命周期。

界面与功能入口 ​

使用 sdk.conversations、sdk.messages、sdk.contacts、sdk.groups 等公共入口;订阅 messageEventStream、connectionStateStream 与 unreadCountStream 展示变化。标准页面通过 MixinImChatPage.sdk(...) 连接同一个实例,详见UIKit 接入。

App 的根导航、登录、业务 Token、个人中心与账号设置仍由宿主负责。只导入 package:mixinim_sdk/mixinim_sdk.dart 或相应 UIKit 公共入口,不依赖包内 src/ 私有文件。

本地存储 ​

默认 SDK 使用按账号隔离的 SQLite,可按宿主策略配置 SQLCipher 与密钥提供方。数据库加密不自动覆盖附件、缩略图或系统通知,详见安全配置。

同一账号数据库由一个 SDK 实例管理。切换账号时先释放旧实例,再为新账号初始化独立存储。

集成检查 ​

Android 正式 Manifest 声明网络权限,iOS/Android 按实际入口配置相机、麦克风和其他用途;通话另按 Call 权限接入。验证断网恢复、切号、退出、附件失效和媒体资源释放后,再进入实际发布流程。

下一步:发送首条消息 · UIKit · Call

开始构建你的通讯体验

获取授权包、完整接口资料与接入支持。

LET’S BUILD TOGETHER

聊聊你的通讯需求

联系密信团队,获取 SDK 授权、接入资料与私有化方案。

咨询内容:
客服微信mixinim
客服 QQ629900
联系邮箱mixinim@126.com

SDK 与源码按授权范围交付。此处不提供公开下载。