|
NIMSDK-iOS
|
本文介绍 iOS SDK API 的概述性信息,并列出核心 API 与核心类或接口类,方便您查阅 API 信息。
IM 所有业务均通过 NIM SDK 单例进行调用。虽然所有的云信接口都是线程安全的,但为了防范于未然,推荐您只在主线程调用相应接口。
以获取聊天管理类为例:
IM iOS SDK 通过以下两种方式通知上层 API 调用结果。两种方式都只在主线程触发。
completion 参数上,调用时设置即可。ViewController 或管理类初始化进行委托注册,在其销毁时进行移除。例如,开发者需要在会话页上监听消息的发送结果。
所有调用错误都会以 NSError 的形式暴露。针对不同场景,我们将错误进行分类,主要分为以下两种错误域和对应错误码:
| 错误域 | 错误码 | 说明 |
|---|---|---|
| NIMLocalErrorDomain | NIMLocalErrorCode | 本地操作出错导致 |
| NIMRemoteErrorDomain | NIMRemoteErrorCode | 与服务器交互出错导致 |
在开发过程中遇到错误情况,可以对照错误域和错误码进行排查,具体定义可以参考 NIMGlobalDefs.h。您也可以通过 NSError 中 userInfo 对应的错误描述信息定位问题。
客户端 API 参考(iOS):NIM SDK-iOS
如需查看圈组 API 参考,请在进入上述链接后搜索“QChat”。
NIMQChatMediaKit API 参考(iOS):NIMQChatMediaKit-iOS
NIMQChatMediaKit 是实现圈组实时互动频道的必要插件,引入 NIMQChatMediaKit 才能实现圈组的实时互动频道相关功能。
| 类/接口 | 说明 |
|---|---|
| NIMSDK | SDK 核心类,提供初始化 SDK,获取各个服务能力接口,获取当前版本等接口 |
| NIMSDKConfig | SDK 配置项修改的接口 |
| NIMSDKConfigDelegate | SDK 配置项修改的委托接口 |
| NIMServerSetting | 服务器配置接口,私有化需要自定义设置,必须在注册 AppKey 完成之前设置 |
| NIMLoginManager | 登录接口类,提供鉴权、登录、登出、踢人等接口 |
| NIMLoginManagerDelegate | 登录的委托接口,提供登录、登出、踢人等事件注册接口 |
| 类/接口 | 说明 |
|---|---|
| NIMChatExtendManager | IM 消息扩展接口类,提供收藏消息、快捷评论等接口 |
| NIMChatExtendManagerDelegate | IM 消息扩展委托接口,提供收藏消息、快捷评论等事件的注册接口 |
| NIMChatManager | IM 消息管理接口类,提供消息发送、消息查询、消息撤回等相关接口 |
| NIMChatManagerDelegate | IM 消息管理委托接口,提供消息发送、消息查询、消息撤回等相关事件的注册接口 |
| NIMConversationManager | 会话管理接口类,提供获取/删除会话消息、设置会话消息已读等相关接口 |
| NIMConversationManagerDelegate | 会话管理委托接口,提供会话相关事件的注册接口 |
| NIMDocTranscodingManager | 文档转码管理接口类,提供查询文档转码信息、删除转码文档等接口 |
| NIMMediaManager | 录制和播放音频管理接口类,提供语音录制和播放相关接口 |
| NIMMediaManagerDelegate | 音频管理委托接口,提供录制、播放音频等事件的注册接口 |
| NIMResourceManager | 资源管理接口类,提供下载、搜做、查询资源等接口 |
| NIMIndexManager | 消息检索接口类,提供消息检索相关接口 |
| 类/接口 | 说明 |
|---|---|
| NIMApnsManager | IM 的 APNs 离线推送服务接口类,提供 IM 的 APNs 离线推送服务相关配置接口 |
| NIMApnsManagerDelegate | IM 的 APNs 离线推送服务委托接口,提供 IM 的 APNs 离线推送服务相关配置事件的注册接口 |
| 类/接口 | 说明 |
|---|---|
| NIMTeamManager | 群组接口类,提供创建群组、添加群成员等群组操作相关接口 |
| NIMTeamManagerDelegate | 群组委托接口,提供群组成员变动、资料变动等事件的注册接口 |
| 类/接口 | 说明 |
|---|---|
| NIMSuperTeamManager | 超大群服务接口类,提供超大群成员管理、超大群消息发送、超大群资料管理等相关接口 |
| 类/接口 | 说明 |
|---|---|
| NIMChatroomManager | 聊天室服务接口类,提供进出聊天室、发送聊天室消息、聊天室成员管理、聊天室队列服务、聊天室标签等接口 |
| NIMChatroomManagerDelegate | 聊天室委托接口, 提供聊天室相关事件的注册接口 |
| 类/接口 | 说明 |
|---|---|
| NIMQChatManager | 圈组接口类,提供圈组登录登出相关接口 |
| NIMQChatManagerDelegate | 圈组委托接口,提供圈组登录登出相关事件的注册接口 |
| NIMQChatServerManager | 圈组服务器接口类,提供圈组服务器相关接口,如创建服务器、邀请服务器成员、查询服务器成员等接口 |
| NIMQChatChannelManager | 圈组频道接口类,提供圈组频道相关接口,如创建频道、查询频道、查询频道未读信息等接口 |
| NIMQChatRoleManager | 圈组身份组接口类,提供圈组身份组相关接口,如将某人加入身份组、查询自己的权限等接口 |
| NIMQChatMessageManager | 圈组消息接口类,提供发送消息、撤回消息、发送消息正在输入事件等接口 |
| NIMQChatMessageManagerDelegate | 圈组消息委托接口,提供圈组消息相关事件的注册接口 |
| NIMQChatApnsManager | 圈组的 APNs 离线推送服务接口类,提供圈组的 APNs 离线推送服务相关配置接口 |
| NIMQChatRTCChannelManager | 圈组实时互动频道接口类,提供更新、查询实时互动频道信息等接口 |
| NIMQChatMessageExtendManager | 圈组消息扩展接口类,提供发送、删除快捷评论等接口 |
| 类/接口 | 说明 |
|---|---|
| NIMQChatMediaKit | 圈组实时互动频道接口类,提供圈组实时互动频道的初始化接口 |
| NIMQChatMediaChannelManager | 圈组实时互动频道管理接口类,提供实时互动频道成员管理、摄像头切换、扬声器管理、视频画布设置等接口 |
| NIMQChatMediaChannelDelegate | 圈组实时互动频道委托接口,提供实时互动频道相关事件的注册接口 |
| 类/接口 | 说明 |
|---|---|
| NIMUserManager | 用户信息与用户关系操作相关接口类,提供用户信息管理和好友关系管理相关接口 |
| NIMUserManagerDelegate | 用户信息与好友关系委托接口,提供好友状态变化,黑名单列表变化等事件的注册接口 |
| 类/接口 | 说明 |
|---|---|
| NIMSystemNotificationManager | 系统通知接口类,提供发送、标记、删除系统通知等接口 |
| NIMSystemNotificationManagerDelegate | 系统通知委托接口, 提供系统通知相关事件的注册接口 |
| 类/接口 | 说明 |
|---|---|
| NIMEventSubscribeManager | 事件订阅接口类,提供发布、查询、订阅事件等接口 |
| NIMEventSubscribeManagerDelegate | 事件订阅委托接口, 提供事件订阅相关事件的注册接口 |
| API | 说明 |
|---|---|
| registerWithOption: | 初始化 SDK |
| sdkVersion | 获取 SDK 版本号 |
| sharedSDK | 获取 SDK 实例 |
| appKey | 获取 AppKey |
| updateApnsToken: | 更新 APNS Token 注:若需要设置自定义推送文案,请使用 updateApnsToken:customContentKey: 或 updateApnsToken:customContentKey:qchatCustomContentKey:(含圈组自定义推送文案) |
| updatePushKitToken: | 更新 PushKit Token 注:目前仅支持 PKPushTypeVoIP |
| qchatWithOption: | 设置圈组选项,用于设置圈组推送证书 |
| sharedConfig | 获取配置项实例 注:NIMSDKConfig 是一个单例,用于多样的初始化配置,包括设置缩略动图等,推荐在调用初始化接口前配置 |
| login:token:completion: | 手动登录 注:若需要选择鉴权方式进行登录,请使用 login:token:authType:loginExt:completion: |
| autoLogin:token: | 自动登录 |
| logout: | 登出 |
| kickOtherClient:completion: | 踢人 |
| currentAccount | 获取当前登录账号 |
| currentAuthMode | 获取当前的 SDK 鉴权模式 |
| currentLoginClients | 获取当前登录的设备列表 |
| API | 说明 |
|---|---|
| sendMessage:toSession:completion: | 发送消息 |
| cancelSendingMessage: | 取消正在发送的消息 |
| resendMessage:error: | 重新发送消息 |
| forwardMessage:toSession:error: | 转发消息 |
| makeForwardMessageFromMessage:error: | 生成转发消息,得到转发消息后,开发者需要再调用sendForwardMessage:toSession:error: 进行发送 |
| sendMessageReceipt:completion: | 发送单聊消息已读回执 |
| sendTeamMessageReceipts:completion: | 发送群聊消息已读回执 |
| refreshTeamMessageReceipts: | 刷新群组消息已读、未读数量 |
| queryMessageReceiptDetail:completion: | 查询群组消息回执情况 |
| queryMessageReceiptDetail:accountSet:completion: | 查询群组消息指定用户的回执详情 |
| localMessageReceiptDetail: | 从本地数据库查询单条群组消息已读、未读账号列表 |
| revokeMessage:option:completion: | 撤回消息,撤回时可设置推送内容,否计入未读数等 |
| fetchMessageAttachment:error: | 收取消息附件 |
| cancelFetchingMessageAttachment: | 取消收取消息附件 |
| messageInTransport: | 消息是否正在传输 (发送/接受附件) |
| messageTransportProgress: | 传输消息的进度 (发送/接受附件) |
| API | 说明 |
|---|---|
| currentMultiportConfig | 获取当前多端推送策略配置 |
| updateApnsMultiportConfig:completion: | 设置推送自定义多端推送策略配置 |
| currentSetting | 获取当前的推送免打扰设置 |
| updateApnsSetting:completion: | 更新推送免打扰设置 |
圈组的 SDK API 数量较多,请前往下文的圈组核心类/接口类查阅圈组的 SDK API。
| API | 说明 |
|---|---|
| fetchUserInfos:completion: | 从服务器批量获取用户资料 |
| userInfo: | 获取本地数据库中所有用户资料 |
| updateMyUserInfo:completion: | 更新本人的用户资料 |
| searchUserWithOption:completion: | 搜索用户 |
| requestFriend:completion: | 添加好友 |
| deleteFriend:removeAlias:completion: | 删除好友 |
| myFriends | 获取我的所有好友账号 |
| addToBlackList:completion: | 将用户添加至黑名单 |
| removeFromBlackBlackList:completion: | 将用户从黑名单中移除 |
| updateNotifyState:forUser:completion: | 设置消息提醒 |
| myBlackList | 获取我的黑名单中用户列表 |
| updateUser:completion: | 修改自己与目标用户的关系 |
| API | 说明 |
|---|---|
| sendCustomNotification:toSession:completion: | 发送自定义系统通知 |
| fetchSystemNotifications:limit:filter: | 获取本地存储的系统通知 |
| allUnreadCount: | 获取系统通知未读数 |
| deleteNotification: | 删除单条系统通知 |
| deleteAllNotifications | 删除所有系统通知 |
| deleteAllNotifications: | 根据通知类型删除系统通知 |
| markNotificationsAsRead: | 标记单条系统通知已读 |
| markAllNotificationsAsRead | 标记所有系统通知已读 |
| markAllNotificationsAsRead: | 根据通知类型标记系统通知已读 |
| API | 说明 |
|---|---|
| publishEvent:completion: | 发布事件 |
| subscribeEvent:completion: | 订阅事件 |
| querySubscribeEvent:completion: | 查询订阅事件 |
| unSubscribeEvent:completion: | 取消订阅事件 |