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: | 取消订阅事件 |