Electron IMLib

Electron 端为桌面场景设计:主进程持有 IMLib 客户端与本地 SQLite(单写者),preload 通过 contextBridge 暴露具名白名单方法,renderer 是薄代理、与 Web 同 API 面。所有异步接口返回 Promise<RcResult<T>>。

平台状态

契约 IDL v1.0.0(frozen,冻结修订 35);本平台绑定状态:in-progress。实现仍在推进中,接口以冻结 IDL 为准。

事件:16 类(来自 IDL eventPayloads),详见 连接监听。

环境与制品​

项值
语言 / 运行时JavaScript (ESM) + TypeScript declarations; Electron main process owns IMLib + SQLite, preload exposes a whitelisted bridge, renderer is a thin proxy
包 / 模块名@ni-paas-im/electron
IMLib 制品src/main
IMKit 制品src/renderer
类型 / 契约声明types/index.d.ts
Demo / 示例—
绑定状态in-progress

API 风格​

项内容
客户端类IMClient
工厂 / 初始化initService(options) → { client, destroy, capabilities, ... }(主进程唯一实例)
命名规则camelCase;方法名与语义 op 同名(与 web/flutter 绑定保持一致),本地库扩展挂在 localDb 命名空间下
异步风格Promise<RcResult<T>>;同步方法仅 getConnectionStatus/getCurrentUserId 等本地无 IO 读取
事件 APIaddEventListener(event, handler) 返回取消函数 / removeEventListener(event, handler)
事件对象Events

初始化选项(bindings.electron.imlib.initOptions):{appkey: string, dbPath?: string, logLevel?: LogL, environment?: string, syncEmptyTopConversation?: boolean, disableLogReport?: boolean, httpInMainProcess?: boolean, eventLoopBlockingCheck?: boolean}。

主进程服务 API:initService(options): ServiceHandle { destroy(): void; getDeviceId(): string; getServerTime(): number }。

常量​

常量 / 枚举说明
Events绑定常量集(取值以绑定实现为准)
RCConnectionStatus绑定常量集(取值以绑定实现为准)
ConversationTypePRIVATE=1,GROUP=2,CHATROOM=3,SYSTEM=4,SUPER_GROUP=10
MessageDirection绑定常量集(取值以绑定实现为准)
NotificationLevelALL=0,MENTION=1,MUTED=2
ErrorCode绑定常量集(取值以绑定实现为准)
CONTENT_TYPE_COMBINE绑定常量集(取值以绑定实现为准)

能力总览​

共 103 个语义操作、9 个能力域、29 个功能页;方法名与签名逐项来自 sdk-bindings.json。

快速链接​

相关文档​