macOS IMLib
macOS 桌面端与 Electron 共用同一套交付(bindings.macos.inherits = electron):主进程持有 IMLib 客户端与本地 SQLite(单写者),preload 通过 contextBridge 暴露具名白名单方法,渲染进程是薄代理。macOS 文档分区额外覆盖 mac 专属的构建、.app/.dmg 打包、代码签名(ad-hoc 与 Developer ID)、公证 notarization、分发与 Gatekeeper 排障。
平台状态
契约 IDL v1.0.0(frozen,冻结修订 35);本平台绑定状态:ga。已按冻结 IDL 交付。
事件:16 类(来自 IDL eventPayloads),详见 连接监听。
环境与制品
| 项 | 值 |
|---|---|
| 语言 / 运行时 | JavaScript (ESM) + TypeScript declarations; Electron 桌面端(macOS x64 / arm64) |
| 包 / 模块名 | @ni-paas-im/electron |
| IMLib 制品 | src/main |
| IMKit 制品 | src/renderer |
| 类型 / 契约声明 | types/index.d.ts |
| Demo / 示例 | — |
| 绑定状态 | ga |
API 风格
| 项 | 内容 |
|---|---|
| 客户端类 | IMClient |
| 工厂 / 初始化 | initService(options) → { client, destroy, capabilities, ... }(主进程唯一实例) |
| 命名规则 | camelCase;方法名与语义 op 同名(与 web/flutter 绑定保持一致),本地库扩展挂在 localDb 命名空间下 |
| 异步风格 | Promise<RcResult<T>>;同步方法仅 getConnectionStatus/getCurrentUserId 等本地无 IO 读取 |
| 事件 API | addEventListener(event, handler) 返回取消函数 / removeEventListener(event, handler) |
| 事件对象 | Events |
初始化选项(bindings.macos.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 | 绑定常量集(取值以绑定实现为准) |
ConversationType | PRIVATE=1,GROUP=2,CHATROOM=3,SYSTEM=4,SUPER_GROUP=10 |
MessageDirection | 绑定常量集(取值以绑定实现为准) |
NotificationLevel | ALL=0,MENTION=1,MUTED=2 |
ErrorCode | 绑定常量集(取值以绑定实现为准) |
CONTENT_TYPE_COMBINE | 绑定常量集(取值以绑定实现为准) |
能力总览
| 能力域 | 操作数 | 功能页 |
|---|---|---|
| 连接与监听 | 7 | 建立连接、连接监听 |
| 消息 | 26 | 发送消息、接收消息、消息管理、已读回执、输入状态、消息进阶 |
| 会话 | 22 | 历史消息、会话列表、未读数、草稿、置顶与免打扰、会话标签与分组、会话删除与类型免打扰 |
| 用户 | 10 | 用户资料、在线状态、在线状态订阅与推送令牌 |
| 好友与黑名单 | 11 | 好友列表、好友请求、黑名单 |
| 群组 | 20 | 创建群组、群成员、群管理、超级群频道与用户组 |
| 聊天室 | 5 | 加入与退出、聊天室信息 |
| 系统通知 | 1 | 系统通知 |
| 文件上传 | 1 | 文件上传 |
共 103 个语义操作、9 个能力域、29 个功能页;方法名与签名逐项来自 sdk-bindings.json。
快速链接
- 快速开始:5 步完成接入
- 导入 SDK:依赖与制品说明
- 初始化:选项、工厂与幂等语义
- 功能列表:103 个操作分组表
- API 参考:类、枚举与成员签名
- 状态码:客户端与 SDK 错误码
- 更新日志:IDL 冻结修订历史
相关文档
- macOS IMKit:UI 组件层(只依赖 IMLib 公开接口)
- 客户端集成总览:IMLib / IMKit 两条路径
- 服务端 API:用户、Token、群组与消息管理
- SDK 体系总览