主题
原生平台 API 名称映射
本页用于跨端产品、测试和 SDK 二次封装。参数语义与返回模型见对应分类文档。 iOS 与 macOS 虽然复用 Swift 实现,但作为两个独立平台列出;安装、权限、生命周期 和制品验收分别查阅各自 QuickStart。
Android 列表中的方法名表示同一能力。新项目默认从 XHIMJavaClient 以 CompletableFuture + Listener 调用;只有存量 Kotlin 项目才直接使用 XHIMClient 的 coroutine/Flow 入口。每个 独立 API 页会把两者分成“Android · Java”和“Android · Kotlin (兼容)”两个真实选项,不把 Kotlin Continuation 字节码当成 Java API。
1. 生命周期与事件
| 统一能力 | iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|---|
| 一键连接 | XHIMClient.connect | XHIMClient.connect | XHIMJavaClient.connectDevelopment / connectWithCredentialProvider;Kotlin 兼容 XHIMClient.connect | XHIMClient.ConnectAsync | XHIMClient.connect |
| 手动创建 | XHIMClient(configuration:) | XHIMClient(configuration:) | XHIMClient(configuration) | new XHIMClient(configuration) | new XHIMClient(configuration) |
| 启动 | start | start | start | StartAsync | start |
| 登录 | login | login | login | LoginAsync | login |
| 续凭 | updateCredential | updateCredential | updateCredential | UpdateCredentialAsync | updateCredential |
| 退出 | logout | logout | logout | LogoutAsync | logout |
| 状态 | state | state | state | State | state |
| 网络恢复 | notifyNetworkAvailable | notifyNetworkAvailable | notifyNetworkAvailable | NotifyNetworkAvailable | notifyNetworkAvailable |
| 诊断 | diagnostics | diagnostics | diagnostics | GetDiagnostics | diagnostics |
| 设备策略 | deviceSessionPolicySnapshot | deviceSessionPolicySnapshot | deviceSessionPolicySnapshot | DeviceSessionPolicySnapshot | deviceSessionPolicySnapshot |
| 兼容性 | compatibilitySnapshot | compatibilitySnapshot | compatibilitySnapshot | CompatibilitySnapshot | compatibilitySnapshot |
| SDK 构建元信息 | XHIMSDK.metadata() | XHIMSDK.metadata() | XHIMSDK.metadata() | XHIMSDK.Metadata | getXHIMSDKMetadata() |
| 读取本机前后台状态 | currentAppRuntimeState | currentAppRuntimeState | currentAppRuntimeState | AppRuntimeState | currentAppRuntimeState |
| 报告本机前后台状态 | setAppRuntimeState | setAppRuntimeState | setAppRuntimeState | SetAppRuntimeStateAsync | setAppRuntimeState |
| 关闭 | shutdown | shutdown | shutdown | ShutdownAsync / DisposeAsync | shutdown / destroy |
| 事件 | events | events | events | Events() | onEvent |
| 账号状态事件 | XHIMEvent.accountStateChanged | XHIMEvent.accountStateChanged | XHIMEvent.AccountStateChanged | XHIMEvent.AccountStateChanged | XHIMAccountStateChangedEvent |
| 投影事件 | projectionEvents | projectionEvents | 从 events 筛选 | ProjectionEvents() | 从 onEvent 筛选 |
2. 消息
| 统一能力 | iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|---|
| 文字 | sendText | sendText | sendText | SendTextAsync | sendText |
| 标准/自定义 | sendMessage | sendMessage | sendMessage | SendMessageAsync | sendMessage |
| 编辑 | editText | editText | editText | EditTextAsync | editText |
| 撤回 | recall | recall | recall | RecallAsync | recall |
| 重试 | retryMessage | retryMessage | retryMessage | RetryMessageAsync | retryMessage |
| 取消待发消息 | cancelMessage | cancelMessage | cancelMessage | CancelMessageAsync | cancelMessage |
| Markdown 工厂 | XHIMStandardMessageFactory.markdown | XHIMStandardMessageFactory.markdown | XHIMStandardMessageFactory.markdown | XHIMStandardMessageFactory.Markdown | XHIMStandardMessageFactory.markdown |
| Markdown 解码 | XHIMMarkdownContent.decode | XHIMMarkdownContent.decode | XHIMMarkdownContent.decode | XHIMMarkdownContent.Decode | XHIMMarkdownContent.decodeMessage |
| 单条查询 | message | message | message | GetMessageAsync | message |
| 本地消息分页 | messages | messages | messages | ListMessagesAsync | messages |
| 按服务端 ID 批量查本地消息 | messages(conversationID:serverMessageIDs:) | messages(conversationID:serverMessageIDs:) | messages(conversationId, serverMessageIds) | GetMessagesByServerIdsAsync | messagesByServerIds |
| 服务端历史 | getMessageHistory | getMessageHistory | getMessageHistory | GetMessageHistoryAsync | getMessageHistory |
| 搜索 | searchMessages | searchMessages | searchMessages | SearchMessagesAsync | searchMessages |
| 仅自己删除 | deleteMessageForSelf | deleteMessageForSelf | deleteMessageForSelf | DeleteMessageForSelfAsync | deleteMessageForSelf |
3. 会话与已读
| 统一能力 | iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|---|
| 会话分页 | conversations | conversations | conversations | ListConversationsAsync | conversations |
| 会话搜索 | searchConversations | searchConversations | searchConversations | SearchConversationsAsync | searchConversations |
| 单聊会话 | directConversation | directConversation | directConversation | GetOrCreateDirectConversationAsync | directConversation |
| 清空 | clearConversation | clearConversation | clearConversation | ClearConversationAsync | clearConversation |
| 隐藏 | hideConversation | hideConversation | hideConversation | HideConversationAsync | hideConversation |
| 单会话已读 | markConversationRead | markConversationRead | markConversationRead | MarkConversationReadAsync | markConversationRead |
| 全部已读 | markAllConversationsRead | markAllConversationsRead | markAllConversationsRead | MarkAllConversationsReadAsync | markAllConversationsRead |
| 隐藏全部会话 | hideAllConversations | hideAllConversations | hideAllConversations | HideAllConversationsAsync | hideAllConversations |
| 总未读 | totalUnreadCount | totalUnreadCount | totalUnreadCount | GetTotalUnreadCountAsync | totalUnreadCount |
| 成员已读 | conversationPeerReads | conversationPeerReads | conversationPeerReads | ListConversationPeerReadsAsync | conversationPeerReads |
| 批量群消息已读 | markGroupMessagesRead | markGroupMessagesRead | markGroupMessagesRead | MarkGroupMessagesReadAsync | markGroupMessagesRead |
| 逐群消息已读成员 | groupMessageReaders | groupMessageReaders | groupMessageReaders | GetGroupMessageReadersAsync | groupMessageReaders |
| 按群成员治理历史消息 | moderateGroupMemberMessages | moderateGroupMemberMessages | moderateGroupMemberMessages | ModerateGroupMemberMessagesAsync | moderateGroupMemberMessages |
| 置顶/免打扰(旧 Core 兼容基础入口) | setConversationPreference | setConversationPreference | setConversationPreference | SetConversationPreferenceAsync | setConversationPreference |
| 置顶/免打扰 + 账号私有会话扩展 | setConversationPreference(..., applicationExtensionJSON:) | 同 iOS | setConversationPreference(..., applicationExtensionJson) | SetConversationPreferenceWithApplicationExtensionAsync | setConversationPreference(..., applicationExtensionJson) |
| 账号私有滚动消息保留 | setConversationMessageRetention | 同 iOS | setConversationMessageRetention | SetConversationMessageRetentionAsync | setConversationMessageRetention |
| 保存草稿 | setLocalDraft | setLocalDraft | setLocalDraft | SetLocalDraftAsync | setLocalDraft |
| 读取草稿 | localDraft | localDraft | localDraft | GetLocalDraftAsync | localDraft |
| 清除草稿 | clearLocalDraft | clearLocalDraft | clearLocalDraft | ClearLocalDraftAsync | clearLocalDraft |
4. 用户、Push 和设备
| 统一能力 | iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|---|
| 当前资料 | currentUserProfile | currentUserProfile | currentUserProfile | GetCurrentUserProfileAsync | currentUserProfile |
| 批量资料 | userProfiles | userProfiles | userProfiles | GetUserProfilesAsync | userProfiles |
| 手机号精确解析 | resolveUser(phoneNumber:) | 同 iOS | resolveUserByPhone | ResolveUserByPhoneAsync | resolveUserByPhone |
| 更新资料 | updateCurrentUserProfile | updateCurrentUserProfile | updateCurrentUserProfile | UpdateCurrentUserProfileAsync | updateCurrentUserProfile |
| 当前资料 + 公开扩展 | currentUserProfileWithApplicationExtension | 同 iOS | currentUserProfileWithExtension | GetCurrentUserProfileWithApplicationExtensionAsync | currentUserProfileWithExtension |
| 批量资料 + 公开扩展 | userProfilesWithApplicationExtensions | 同 iOS | userProfilesWithExtensions | GetUserProfilesWithApplicationExtensionsAsync | userProfilesWithExtensions |
| 手机精确解析 + 公开扩展 | resolveUserWithApplicationExtension | 同 iOS | resolveUserByPhoneWithExtension | ResolveUserWithApplicationExtensionAsync | resolveUserByPhoneWithExtension |
| 更新资料 + 公开扩展 | updateCurrentUserProfileWithApplicationExtension | 同 iOS | updateCurrentUserProfileWithExtension | UpdateCurrentUserProfileWithApplicationExtensionAsync | updateCurrentUserProfileWithExtension |
| Presence | publishPresence | publishPresence | publishPresence | PublishPresenceAsync | publishPresence |
| Presence 快照/在线端 | queryPresence | queryPresence | queryPresence | QueryPresenceAsync | queryPresence |
| Presence 显式订阅 | subscribePresence | subscribePresence | subscribePresence | SubscribePresenceAsync | subscribePresence |
| Presence 显式退订 | unsubscribePresence | unsubscribePresence | unsubscribePresence | UnsubscribePresenceAsync | unsubscribePresence |
| Presence 订阅集 | listPresenceSubscriptions | listPresenceSubscriptions | listPresenceSubscriptions | ListPresenceSubscriptionsAsync | listPresenceSubscriptions |
| Typing | publishTyping | publishTyping | publishTyping | PublishTypingAsync | publishTyping |
| Typing 快照 | queryTyping | queryTyping | queryTyping | QueryTypingAsync | queryTyping |
| 在线自定义信令 | publishCustomSignal | publishCustomSignal | publishCustomSignal | PublishCustomSignalAsync | publishCustomSignal |
| 注册 Push | registerPushDevice | registerPushDevice | registerPushDevice | RegisterPushDeviceAsync | registerPushDevice |
| 禁用 Push | disablePushDevice | disablePushDevice | disablePushDevice | DisablePushDeviceAsync | disablePushDevice |
| 设备会话列表 | listDeviceSessions | listDeviceSessions | listDeviceSessions | ListDeviceSessionsAsync | listDeviceSessions |
| 撤销设备会话 | revokeDeviceSession | revokeDeviceSession | revokeDeviceSession | RevokeDeviceSessionAsync | revokeDeviceSession |
5. 好友与黑名单
| 统一能力 | iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|---|
| 发好友申请 | sendFriendRequest | sendFriendRequest | sendFriendRequest | SendFriendRequestAsync | sendFriendRequest |
| 处理好友申请 | resolveFriendRequest | resolveFriendRequest | resolveFriendRequest | ResolveFriendRequestAsync | resolveFriendRequest |
| 发好友申请 + 参与者可见扩展 | sendFriendRequest(..., applicationExtensionJSON:) | 同 iOS | sendFriendRequestWithExtension | SendFriendRequestWithApplicationExtensionAsync | sendFriendRequestWithExtension |
| 处理好友申请 + 扩展回显 | resolveFriendRequestWithApplicationExtension | 同 iOS | resolveFriendRequestWithExtension | ResolveFriendRequestWithApplicationExtensionAsync | resolveFriendRequestWithExtension |
| 删除好友 | deleteFriendship | deleteFriendship | deleteFriendship | DeleteFriendshipAsync | deleteFriendship |
| 好友备注 | setFriendRemark | setFriendRemark | setFriendRemark | SetFriendRemarkAsync | setFriendRemark |
| 好友置顶 | setFriendPinned | setFriendPinned | setFriendPinned | SetFriendPinnedAsync | setFriendPinned |
| 好友业务扩展 JSON | setFriendApplicationExtension | setFriendApplicationExtension | setFriendApplicationExtension | SetFriendApplicationExtensionAsync | setFriendApplicationExtension |
| 批量关系检查 | checkRelationships | checkRelationships | checkRelationships | CheckRelationshipsAsync | checkRelationships |
| 好友申请列表 | friendRequests | friendRequests | friendRequests | ListFriendRequestsAsync | friendRequests |
| 好友申请列表 + 扩展 | friendRequestsWithApplicationExtensions | 同 iOS | friendRequestsWithExtensions | ListFriendRequestsWithApplicationExtensionsAsync | friendRequestsWithExtensions |
| 好友列表 | friendships | friendships | friendships | ListFriendshipsAsync | friendships |
| 搜索好友申请 | searchFriendRequests | searchFriendRequests | searchFriendRequests | SearchFriendRequestsAsync | searchFriendRequests |
| 搜索好友申请 + 扩展 | searchFriendRequestsWithApplicationExtensions | 同 iOS | searchFriendRequestsWithExtensions | SearchFriendRequestsWithApplicationExtensionsAsync | searchFriendRequestsWithExtensions |
| 搜索好友 | searchFriendships | searchFriendships | searchFriendships | SearchFriendshipsAsync | searchFriendships |
| 关系链角标统计 | socialSummary | socialSummary | socialSummary | GetSocialSummaryAsync | socialSummary |
| 拉黑/解除 | setBlock | setBlock | setBlock | SetBlockAsync | setBlock |
| 黑名单 | blocks | blocks | blocks | ListBlocksAsync | blocks |
| 拉黑/解除 + 方向性私有扩展 | setBlock(..., applicationExtensionJSON:) | 同 iOS | setBlockWithExtension | SetBlockWithApplicationExtensionAsync | setBlockWithExtension |
| 黑名单 + 扩展 | blocksWithApplicationExtensions | 同 iOS | blocksWithExtensions | ListBlocksWithApplicationExtensionsAsync | blocksWithExtensions |
| 搜索黑名单 + 扩展 | searchBlocksWithApplicationExtensions | 同 iOS | searchBlocksWithExtensions | SearchBlocksWithApplicationExtensionsAsync | searchBlocksWithExtensions |
6. 群组
| 统一能力 | iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|---|
| 创建群 | createGroup | createGroup | createGroup | CreateGroupAsync | createGroup |
| 创建群 + 群公开扩展 | createGroup(..., applicationExtensionJSON:) | 同 iOS | createGroup(..., applicationExtensionJson) | CreateGroupWithApplicationExtensionAsync | createGroup(..., applicationExtensionJson) |
| 设置/清除群公开扩展 | setGroupApplicationExtension | 同 iOS | setGroupApplicationExtension | SetGroupApplicationExtensionAsync | setGroupApplicationExtension |
| 增删成员 | changeGroupMembers | changeGroupMembers | changeGroupMembers | ChangeGroupMembersAsync | changeGroupMembers |
| 退群 | leaveGroup | leaveGroup | leaveGroup | LeaveGroupAsync | leaveGroup |
| 解散群 | dismissGroup | dismissGroup | dismissGroup | DismissGroupAsync | dismissGroup |
| 申请入群 | requestGroupJoin | requestGroupJoin | requestGroupJoin | RequestGroupJoinAsync | requestGroupJoin |
| 处理入群申请 | resolveGroupJoin | resolveGroupJoin | resolveGroupJoin | ResolveGroupJoinAsync | resolveGroupJoin |
| 申请入群 + 参与者可见扩展 | requestGroupJoin(..., applicationExtensionJSON:) | 同 iOS | requestGroupJoinWithExtension | RequestGroupJoinWithApplicationExtensionAsync | requestGroupJoinWithExtension |
| 处理入群申请 + 扩展回显 | resolveGroupJoinWithApplicationExtension | 同 iOS | resolveGroupJoinWithExtension | ResolveGroupJoinWithApplicationExtensionAsync | resolveGroupJoinWithExtension |
| 群治理 | changeGroupGovernance | changeGroupGovernance | changeGroupGovernance | ChangeGroupGovernanceAsync | changeGroupGovernance |
| 设置/清除群成员业务扩展 | setGroupMemberApplicationExtension | setGroupMemberApplicationExtension | setGroupMemberApplicationExtension | SetGroupMemberApplicationExtensionAsync | setGroupMemberApplicationExtension |
| 群列表 | groups | groups | groups | ListGroupsAsync | groups |
| 群成员 | groupMembers | groupMembers | groupMembers | ListGroupMembersAsync | groupMembers |
| 入群申请列表 | groupJoinRequests | groupJoinRequests | groupJoinRequests | ListGroupJoinRequestsAsync | groupJoinRequests |
| 入群申请列表 + 扩展 | groupJoinRequestsWithApplicationExtensions | 同 iOS | groupJoinRequestsWithExtensions | ListGroupJoinRequestsWithApplicationExtensionsAsync | groupJoinRequestsWithExtensions |
| 搜索群聊 | searchGroups | searchGroups | searchGroups | SearchGroupsAsync | searchGroups |
| 搜索群成员 / 入群时间筛选 | searchGroupMembers | searchGroupMembers | searchGroupMembers | SearchGroupMembersAsync | searchGroupMembers |
| 搜索入群申请 | searchGroupJoinRequests | searchGroupJoinRequests | searchGroupJoinRequests | SearchGroupJoinRequestsAsync | searchGroupJoinRequests |
| 搜索入群申请 + 扩展 | searchGroupJoinRequestsWithApplicationExtensions | 同 iOS | searchGroupJoinRequestsWithExtensions | SearchGroupJoinRequestsWithApplicationExtensionsAsync | searchGroupJoinRequestsWithExtensions |
| 新成员历史可见策略 | changeGroupGovernance(.setNewMemberHistoryVisible) | 同 iOS | changeGroupGovernance(SetNewMemberHistoryVisible) | ChangeGroupGovernanceAsync(new SetNewMemberHistoryVisible(...)) | changeGroupGovernance(SET_NEW_MEMBER_HISTORY_VISIBILITY) |
6.1 社交投影完整性
| 统一能力 | iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|---|
| 检查已加入群投影 | checkJoinedGroupProjectionIntegrity | 同 iOS | checkJoinedGroupProjection | CheckJoinedGroupProjectionIntegrityAsync | checkJoinedGroupProjection |
| 检查指定群成员投影 | checkGroupMemberProjectionIntegrity | 同 iOS | checkGroupMemberProjection | CheckGroupMemberProjectionIntegrityAsync | checkGroupMemberProjection |
| 远端刷新并原子替换群成员投影 | refreshGroupMemberProjection | 同 iOS | refreshGroupMemberProjection | RefreshGroupMemberProjectionAsync | refreshGroupMemberProjection |
检查不修复;complete=false 是强类型结果,不是 completion 错误。 刷新只有在全量无筛选分页、revision、游标、计数和唯一群主全部验证后 才原子替换本地投影。
7. 媒体
| 统一能力 | iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|---|
| 图片 | client.sendImage | client.sendImage | client.sendImage | XHIMMediaMessaging.SendImageAsync | XHIMMediaMessaging.sendImage |
| 视频 | client.sendVideo | client.sendVideo | client.sendVideo | XHIMMediaMessaging.SendVideoAsync | XHIMMediaMessaging.sendVideo |
| 音频 | client.sendAudio | client.sendAudio | client.sendAudio | XHIMMediaMessaging.SendAudioAsync | XHIMMediaMessaging.sendAudio |
| 文件 | client.sendFile | client.sendFile | client.sendFile | XHIMMediaMessaging.SendFileAsync | XHIMMediaMessaging.sendFile |
| 接受上传 | acceptMediaUpload | acceptMediaUpload | acceptMediaUpload | CreateMediaUploadAsync | acceptMediaUpload |
| 接受下载 | acceptMediaDownload | acceptMediaDownload | acceptMediaDownload | CreateMediaDownloadAsync | acceptMediaDownload |
| 查询任务 | mediaTask | mediaTask | mediaTask | GetMediaTaskAsync | mediaTask |
| 取消任务 | cancelMediaTask | cancelMediaTask | cancelMediaTask | CancelMediaTaskAsync | cancelMediaTask |
| 打开缓存 | openMediaCacheReader | openMediaCacheReader | openMediaCacheReader | OpenMediaCacheReaderAsync | openMediaCacheReader |
8. Call Session
| 统一能力 | iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|---|
| 邀请 | inviteCall | inviteCall | inviteCall | InviteCallAsync | inviteCall |
| 接听 | acceptCall | acceptCall | acceptCall | AcceptCallAsync | acceptCall |
| 拒绝 | rejectCall | rejectCall | rejectCall | RejectCallAsync | rejectCall |
| 结束 | endCall | endCall | endCall | EndCallAsync | endCall |
| 信令分页 | listCallSignals | listCallSignals | listCallSignals | ListCallSignalsAsync | listCallSignals |
| 崩溃恢复 | recoverCallSessions | recoverCallSessions | recoverCallSessions | RecoverCallSessionsAsync | recoverCallSessions |
以上入口是统一 Call Session 控制面;媒体面仍由客户选定并注入的 RTC Provider 完成。凭证不持久化,崩溃恢复只返回可恢复的会话状态。
9. Message Enricher
| 统一能力 | iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|---|
| 创建 Provider Facade | XHIMMessageEnricher(provider:) | 同 iOS | XHIMMessageEnricher(provider) | new XHIMMessageEnricher(provider) | new XHIMMessageEnricher(provider) |
| 语音转文字 | transcribe | transcribe | transcribe | TranscribeAsync | transcribe |
| 翻译 | translate | translate | translate | TranslateAsync | translate |
| 取消 | cancel(requestID:) | cancel(requestID:) | cancel(requestId) | Cancel(requestId) | cancel(requestId) |
| 关闭 | close | close | close | Dispose | close |
Provider 由宿主注入,远端处理明文必须显式同意;SDK 不内置供应商凭证或模型。
10. 离线 Reader
| 统一能力 | iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|---|
| 打开 | XHIMOfflineReader.open | XHIMOfflineReader.open | XHIMOfflineReader.open | XHIMOfflineReader.OpenAsync | XHIMOfflineReader.open |
| 消息 | messages | messages | messages | MessagesAsync | messages |
| 搜索 | searchMessages | searchMessages | searchMessages | SearchMessagesAsync | searchMessages |
| 会话 | conversations | conversations | conversations | ConversationsAsync | conversations |
| 好友申请 | friendRequests | friendRequests | friendRequests | FriendRequestsAsync | friendRequests |
| 好友 | friendships | friendships | friendships | FriendshipsAsync | friendships |
| 群 | groups | groups | groups | GroupsAsync | groups |
| 群成员 | groupMembers | groupMembers | groupMembers | GroupMembersAsync | groupMembers |
| 黑名单 | blocks | blocks | blocks | BlocksAsync | blocks |
| 入群申请 | groupJoinRequests | groupJoinRequests | groupJoinRequests | GroupJoinRequestsAsync | groupJoinRequests |
| 关闭 | close | close | close | DisposeAsync | close |
11. 通用请求取消
| iOS | macOS | Android | Windows | HarmonyOS |
|---|---|---|---|---|
Swift Task / XHIMRequest.cancel() | Swift Task / XHIMRequest.cancel() | Coroutine cancellation | 每个异步方法的 CancellationToken | 每个 Promise 可用 onRequest 取 ID,再调用 cancelRequest |
这项差异是语言原生设计,不代表功能缺失。业务取消消息或媒体任务时仍应使用 对应的 durable cancel API。
12. 跨端框架
| 框架 | 客户 API | 底层映射 | 当前范围 |
|---|---|---|---|
| Flutter | XHIMSDK.metadata() | Darwin/Android 原生元信息 Facade | 返回当前进程 Core 的 version / commit / ABI;旧 Native 缺符号显式失败 |
| Flutter | client.events 中的 XHIMAccountStateChanged | Darwin/Android 强类型原生事件 | BigInt revision/epoch/generation;退出后迟到和重复/低 revision 被丢弃 |
| Flutter | XHIMStandardMessageFactory.markdown / sendMarkdown / getMessageHistory / messagesByServerIds / markGroupMessagesRead / groupMessageReaders / editText / friendRequests / resolveFriendRequest / deleteFriendRequests / deleteGroupJoinRequests / createGroup / changeGroupGovernance / sendImage / acceptMediaDownload / mediaTask / openMediaCacheReader / XHIMOfflineReader.open | iOS、macOS、Android 原生 Facade | Markdown 只在 Dart 侧生成同一 protobuf envelope;可靠发送、消息历史强续页、成员已读水位、消息治理、关系链、申请删除墓碑、群治理、附件持久任务与离线只读投影继续由各端 Core 负责 |
| Flutter | currentUserProfileWithExtension / userProfilesWithExtensions / resolveUserByPhone / updateCurrentUserProfileWithExtension / setConversationPreference / createGroup / setGroupApplicationExtension / 三个 projection 入口 | Darwin/Android extension-aware Facade | 可传 XHIMCancellationToken;写扩展时缺 dedicated bridge 稳定 unsupported |
| Flutter | sendFriendRequestWithExtension / resolveFriendRequestWithExtension / setBlockWithExtension / requestGroupJoinWithExtension / resolveGroupJoinWithExtension / 三类 *WithExtensions 列表与搜索 | Darwin/Android 原生投影 | 基础模型 applicationExtensionJson == null 是 unknown;显式入口成功的空串是 authoritative clear |
| Electron Main | getXHIMSDKMetadata() | shared Node-API 读取已加载 Core | 不请求 Server;旧 addon / Core 缺能力显式返回 unsupported |
| Electron Main / Renderer | onAccountStateChanged / accountStateChanged IPC event | shared Node-API + Main/Preload 固定白名单 | callback 内深拷贝 borrowed bytes;不允许管理员 reason 或未知属性跨 IPC |
| Electron Main | createXHIMMarkdownMessage / decodeXHIMMarkdownMessage / XHIMElectronClient.messagesByServerIds / markGroupMessagesRead / groupMessageReaders / raw | 完整 shared Node-API bridge | 与 HarmonyOS NativeClient 同面;Markdown 工厂不执行渲染,逐消息已读复用 Core 的 peer watermark |
| Electron Main / Renderer | currentUserProfileWithExtension / userProfilesWithExtensions / resolveUserByPhone / updateCurrentUserProfileWithExtension / setConversationPreference / createGroup / setGroupApplicationExtension / 三个 projection 入口 | shared Node-API + 固定 IPC 白名单 | applicationExtensionJSON 拼写固定;基础模型字段缺失是 unknown |
| Electron Main / Renderer | sendFriendRequestWithExtension / resolveFriendRequestWithExtension / setBlockWithExtension / requestGroupJoinWithExtension / resolveGroupJoinWithExtension / 三类 *WithExtensions 列表与搜索 | shared Node-API dedicated symbols | 显式模型为 required string,空串是 clear;缺符号不回退 |
| Electron Renderer | window.xhim | Main Process 固定 IPC 白名单 | 默认只暴露页面需要的最小能力 |
| Web / Browser | createXHIMMarkdownMessage / decodeXHIMMarkdownMessage / XHIMWebClient(含 deleteFriendRequests / deleteGroupJoinRequests / markGroupMessagesRead / groupMessageReaders) | TypeScript Web Lite Runtime + Protobuf Fetch/WSS + IndexedDB v2 | Markdown 使用同一 protobuf envelope;申请删除使用同一服务合同;消息与 peer-read Sync 在账号隔离 IndexedDB 中交易投影,支持按 ID 批量解析和逐消息已读成员 |
| Web / Browser | client.on('accountStateChanged', listener) | WSS ACCOUNT_STATE_CHANGED(17) 强类型映射 | 会话 AbortSignal 取消在途请求;105/106 不进入凭证刷新;旧 Server 仍保持普通 revoke 行为 |
| Web / Browser | getXHIMSDKMetadata() | prebuild 生成的 npm 版本 / Git 来源 + protocol fingerprint | abiVersion=null;脏工作区标记 +dirty,绝不从 Server 接口伪造客户端 SDK 版本 |
| Web / Browser | getCurrentUserProfile / getUserProfiles / resolveUserByPhone / updateCurrentUserProfile / setConversationPreference / createGroup / setGroupApplicationExtension / 三个 projection 入口 | 真实 Server HTTP protobuf + IndexedDB projection | Web 不加载本地 Core;返回扩展是 canonical string,空串为服务端权威 unset |
| Web / Browser | sendFriendRequestWithExtension / resolveFriendRequestWithExtension / setBlockWithExtension / requestGroupJoinWithExtension / resolveGroupJoinWithExtension / list*WithExtensions / searchSocialWithExtensions | 当前 Server 等价能力 | AbortSignal 直达 fetch;黑名单扩展是方向性账号私有数据 |
| 小程序 | XHIMMiniProgramClient.create 返回受管 XHIMWebClient | 微信 wx.request / wx.connectSocket / 账号隔离原子快照 | 复用 Web 的 126 项 Server 能力;不伪造浏览器 IndexedDB 或原生媒体 Core |
| 小程序 | createXHIMWeChatMiniProgramAdapter(wx) | 可替换平台 Adapter | 支付宝/抖音保持同一 request/socket/storage 合同,必须由目标平台消费工程验收 |
Web 的独立接入和 API 表见 Web QuickStart,Electron 见 Electron QuickStart,小程序见 Mini Program QuickStart。这三端已进入 独立 API 页的平台选择器;没有真实公开入口的能力会显示 “当前平台未提供”。React Native、Unity 和 uni-app 的安装与调用流程见 选择平台与接入说明。
12.1 扩展值与旧 Core 兼容合同
- 基础
friendRequests/blocks/groupJoinRequests及其基础处理入口在旧 Core 上继续成功;其 nullable/缺失扩展表示 unavailable/unknown。 - 显式
*WithExtension(s)成功时才能将空字节/空串解释为当前 Core/服务端证明的 authoritative clear。 - 带扩展的发送、建群、会话偏好和关系写入只调用 dedicated capability-fenced 入口;旧 Core 缺符号时在变更前返回
UNSUPPORTED,绝不回退基础 API 而静默忽略扩展。 - 新 Core 还必须在变更前确认对应的 Server capability family;旧 Server 未声明能力时同样 fail-closed
UNSUPPORTED,不发出会被旧服务端忽略的 tail。weak symbol 只是旧 Core 兼容的第一道栅栏,不能替代服务能力协商。 - 原生 C ABI 所有返回 view 都是 callback 期借用内存;Apple、Android、 Windows、HarmonyOS 在完成 async/callback 前已深拷贝。错误、日志和
description/ToString()不记录 JSON 正文。