Skip to content
密信 IM · 开发文档

iOS 原生接入 ​

iOS SDK 使用共享 C++ 内核与 Swift/Objective-C 封装,标准界面采用 UIKit。纯 IM 集成不依赖 Flutter 或音视频媒体组件;需要音视频时再组合 Call SDK/UIKit。

版本与制品 ​

本页对应密信 IM 开发版 5.0 的 iOS 原生组件,部署目标为 iOS 15.5 起。授权包按约定提供配套组件及接入说明,具体制品版本以交付清单为准;设备与模拟器切片、运行依赖和资源 Bundle 应保持同源配套。

按交付包提供的依赖方式导入 SDK、资源 Bundle 和配套库。设备构建使用对应切片与应用签名,模拟器构建使用模拟器切片。

初始化与连接 ​

Swift 使用 import MixinImSDK,Objective-C 使用对应模块导入。实际客户端类型是 MixinImClient;宿主提供 MixinImSessionProvider 处理续签。

以下片段中的 configuration、session、sessionProvider、showError 和 openMessaging 由宿主准备,sdk 应由宿主持有:

swift
import MixinImSDK

let sdk = try MixinImClient(
    sessionProvider: sessionProvider,
    listener: nil
)
sdk.initialize(configuration) { _, error in
    if let error {
        showError(error)
        return
    }
    sdk.connect(session, databaseKeyHex: nil) { _, error in
        if let error { showError(error) }
        else { openMessaging(sdk) }
    }
}

示例中的 databaseKeyHex: nil 使用普通存储。启用本地数据库加密时,选择匹配的 SQLCipher 制品,并按交付说明配置密钥。

事件与数据接口 ​

conversationManager、messageManager、contacts、groups、groupApplications、pinnedMessages 和 attachments 使用同一个 Session 与本地存储。ID 与消息序号保留 String/Int64 精度,不经 Double 转换。

subscribe(...) 返回 MixinImSubscription,宿主持有后在页面结束时调用 cancel();取消单个页面订阅不等于关闭整个 SDK。回调按公共接口合同回到主队列。

嵌入 UIKit ​

MixinImConversationListViewController(sdk:currentUserId:) 可放入宿主的 UINavigationController;默认打开聊天控制器,也可通过 onOpenConversation 交给应用自己的导航。

默认界面覆盖会话、聊天、联系人和群等标准 IM 页面。App 登录、账号设置、业务 Token 与全局导航继续由宿主提供。SwiftUI 项目可以通过 UIViewControllerRepresentable 承载控制器,仍需由宿主管理其生命周期。

权限与应用发布 ​

按实际启用功能填写相机、麦克风、定位或相册用途说明,并接入对应权限回调。系统权限被拒绝时保留可理解的失败状态,不绕过系统授权。

音视频接入按配套 Call 组件配置媒体服务、设备权限与音频路由;应用发布时使用对应的签名和权限声明。

下一步:UIKit 定制 · Call 权限 · 生命周期

开始构建你的通讯体验

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

LET’S BUILD TOGETHER

聊聊你的通讯需求

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

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

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