Skip to content
密信 IM · 开发文档

Electron 接入 ​

Electron 版本在主进程管理原生 IM 内核与 SQLite,渲染进程复用 Web UIKit。各窗口读取同一个账号状态,不能各自打开数据库或持有业务认证密钥。

组件与平台范围 ​

密信 IM 开发版 5.0 提供 @mixinim/electron-sdk、独立 Electron Call SDK 与对应宿主接入。各组件与原生依赖通过授权包配套交付,使用包内清单指定的依赖版本。

按目标操作系统、CPU 架构与 Electron 运行时选择匹配的原生模块,分别组织桌面安装包与签名配置。

主进程、preload 与界面分工 ​

位置职责
主进程业务认证、IM Session、原生 SDK 实例、数据库目录和调用来源校验
受限 preload暴露指定的消息操作与事件桥,不直接暴露 ipcRenderer 或凭据
渲染进程Web UIKit、页面展示、用户操作与订阅清理
媒体宿主持有通话媒体,按通话生命周期释放

主进程使用 createNativeImClient,配置包括 addon、baseDirectory、真实 platform 及通用 IM 配置。以授权包的完整消费者为接入起点,保留来源窗口、顶层 frame、操作白名单与参数校验。

渲染端最小连接片段 ​

主进程与 preload 按交付说明安装并完成登录后,渲染页面连接已暴露的受限桥:

js
import { createElectronRendererClient } from '@mixinim/electron-sdk/renderer'

const im = await createElectronRendererClient(window.mixinim)
const stop = im.on('messageChanged', renderMessage)

// 当前窗口结束时:
stop()
await im.dispose()

window.mixinim 由配套 preload 暴露,renderMessage 为宿主展示函数。关闭这个渲染代理仅清理该窗口资源,不代替主进程的账号退出或整应用清理。

渲染代理的 connect、disconnect 不承担账号生命周期;登录与切号由主进程执行。不要为方便界面调用而向渲染端透传业务 Token、原生句柄或任意文件路径。

共享界面与媒体 ​

Electron 使用 Web 的 IM UIKit、媒体缓存和消息展示。桌面宿主处理系统文件、窗口、权限与外部导航;不要复制第二套聊天状态或放宽为任意 IPC 请求。

Call 的控制与媒体生命周期独立于聊天窗口。关闭或切换聊天页不应错误销毁正在进行的通话;最后退出应用时先结束媒体,再关闭原生实例。

打包检查 ​

使用对应系统与架构的原生制品,检查应用签名、麦克风/相机权限、附件上传打开、多窗口、网络恢复及应用退出。桌面安装包按目标系统分别构建和配置。

桌面 Demo 的界面与体验入口见体验中心,SDK 与集成资料通过授权交付。

下一步:Web UIKit · 账号生命周期 · 兼容与升级

开始构建你的通讯体验

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

LET’S BUILD TOGETHER

聊聊你的通讯需求

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

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

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