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 读取
事件 APIaddEventListener(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绑定常量集(取值以绑定实现为准)
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。

快速链接​

相关文档​