iOS SDK API
更新时间: 2024/06/12 11:34:33
本文介绍 iOS SDK API 的概述性信息,并列出核心 API 与核心类或接口类,方便您查阅 API 信息。
SDK API 概述
点击查看 API 概述
调用方式
IM 所有业务均通过 NIMSDK 单例进行调用。虽然所有的云信接口都是线程安全的,但为了防范于未然,推荐您只在主线程调用相应接口。
@interface NIMSDK : NSObject
/**
* 获取SDK实例
* @return NIMSDK实例
*/
+ (instancetype)sharedSDK;
@end
以获取聊天管理类为例:
id<NIMChatManager> chatManager = [[NIMSDK sharedSDK] chatManager];
通知方式
IM iOS SDK 通过以下两种方式通知上层 API 调用结果。两种方式都只在主线程触发。
- 回调(callback),一般回调接口直接反映在对应接口的
completion
参数上,调用时设置即可。 - 委托(delegate),委托则需要开发者在合适的时机,在对应管理类上进行添加和移除:一般推荐在相应
ViewController
或管理类初始化进行委托注册,在其销毁时进行移除。
例如,开发者需要在会话页上监听消息的发送结果。
@implementation MySessionViewController
- (void)dealloc
{
...
[[NIMSDK sharedSDK].chatManager removeDelegate:self];
...
}
- (void)viewDidLoad
{
...
[[NIMSDK sharedSDK].chatManager addDelegate:self];
...
}
#pragma mark - NIMChatManagerDelegate
- (void)sendMessage:(NIMMessage *)message didCompleteWithError:(NSError *)error
{
//发送结果
}
所有调用错误都会以 NSError
的形式暴露。针对不同场景,我们将错误进行分类,主要分为以下两种错误域和对应错误码:
错误域 | 错误码 | 说明 |
---|---|---|
NIMLocalErrorDomain | NIMLocalErrorCode |
本地操作出错导致 |
NIMRemoteErrorDomain | NIMRemoteErrorCode |
与服务器交互出错导致 |
在开发过程中遇到错误情况,可以对照错误域和错误码进行排查,具体定义可以参考 NIMGlobalDefs.h
。您也可以通过 NSError
中 userInfo
对应的错误描述信息定位问题。
SDK API 参考
-
客户端 API 参考(iOS):NIM SDK-iOS
如需查看圈组 API 参考,请在进入上述链接后搜索“QChat”。
-
NIMQChatMediaKit API 参考(iOS):NIMQChatMediaKit-iOS
NIMQChatMediaKit 是实现圈组实时互动频道的必要插件,引入 NIMQChatMediaKit 才能实现圈组的实时互动频道相关功能。
SDK 核心 API
以下仅列出 SDK 的部分核心 API,如需查阅其他 SDK API 信息,请参考上述 API 参考。
初始化 & 登录
V9 API | 说明 | 对应 V10 API |
---|---|---|
registerWithOption: | 初始化 SDK | registerWithOptionV2:v2Option: |
sdkVersion | 获取 SDK 版本号 | 同 V9 API |
sharedSDK | 获取 SDK 实例 | 同 V9 API |
appKey | 获取 AppKey | 同 V9 API |
updateApnsToken: | 更新 APNS Token | 同 V9 API |
updatePushKitToken: | 更新 PushKit Token | 同 V9 API |
qchatWithOption: | 设置圈组选项,用于设置圈组推送证书 | 同 V9 API |
sharedConfig | 获取配置项实例 | 同 V9 API |
login:token:completion: | 手动登录 | login:token:option:success:failure: |
autoLogin:token: | 自动登录 | 同上 |
logout: | 登出 | logout:failure: |
kickOtherClient:completion: | 踢人 | kickOffline:success:failure: |
currentAccount | 获取当前登录账号 | getLoginUser |
currentAuthMode | 获取当前的 SDK 鉴权模式 | 同 V9 API |
currentLoginClients | 获取当前登录的设备列表 | getLoginClients |
isLogined | 是否已登录 | getLoginStatus |
消息(单聊 & 群聊 & 聊天室)
消息扩展
会话列表
APNs 离线推送
V9 API | 说明 | 对应 V10 API |
---|---|---|
currentMultiportConfig | 获取当前多端推送策略配置 | 同 V9 API |
updateApnsMultiportConfig:completion: | 设置推送自定义多端推送策略配置 | 同 V9 API |
currentSetting | 获取当前的推送免打扰设置 | 同 V9 API |
updateApnsSetting:completion: | 更新推送免打扰设置 | 同 V9 API |
群组
超大群
聊天室
圈组
圈组的 SDK API 数量较多,请前往下文的圈组核心类/接口类查阅圈组的 SDK API。
用户信息 & 用户关系
V9 API | 说明 | 对应 V10 API |
---|---|---|
fetchUserInfos:completion: | 从服务器批量获取用户资料 | getUserList:success:failure: |
userInfo: | 获取本地数据库中所有用户资料 | 同 V9 |
updateMyUserInfo:completion: | 更新本人的用户资料 | updateSelfUserProfile:success:failure: |
searchUserWithOption:completion: | 搜索用户 | 同 V9 |
fetchUserInfos:completion: | 从服务器批量获取用户资料 | getFriendByIds:success:failure: |
requestFriend:completion: | 添加好友 | addFriend:params:success:failure: |
deleteFriend:removeAlias:completion: | 删除好友 | deleteFriend:params:success:failure: |
myFriends | 获取我的所有好友账号 | getFriendList:failure: |
addToBlackList:completion: | 将用户添加至黑名单 | addUserToBlockList:success:failure: |
removeFromBlackBlackList:completion: | 将用户从黑名单中移除 | removeUserFromBlockList:success:failure: |
updateNotifyState:forUser:completion: | 设置消息提醒 | 同 V9 |
myBlackList | 获取我的黑名单中用户列表 | getBlockList:failure: |
updateUser:completion: | 修改自己与目标用户的关系 | 同 V9 |
无 | 接受好友申请 | acceptAddApplication:success:failure: |
无 | 拒绝好友申请 | rejectAddApplication:postscript:success:failure: |
无 | 设置好友信息 | setFriendInfo:params:success:failure: |
无 | 获取申请添加好友信息列表 | getAddApplicationList:success:failure: |
系统通知
V9 API | 说明 | 对应 V10 API |
---|---|---|
sendCustomNotification:toSession:completion: | 发送自定义系统通知 | sendCustomNotification |
fetchSystemNotifications:limit:filter: | 获取本地存储的系统通知 | 同 V9 |
allUnreadCount: | 获取系统通知未读数 | 同 V9 |
deleteNotification: | 删除单条系统通知 | 同 V9 |
deleteAllNotifications | 删除所有系统通知 | 同 V9 |
deleteAllNotifications: | 根据通知类型删除系统通知 | 同 V9 |
markNotificationsAsRead: | 标记单条系统通知已读 | 同 V9 |
markAllNotificationsAsRead | 标记所有系统通知已读 | 同 V9 |
markAllNotificationsAsRead: | 根据通知类型标记系统通知已读 | 同 V9 |
事件订阅
V9 API | 说明 | 对应 V10 API |
---|---|---|
publishEvent:completion: | 发布事件 | 同 V9 |
subscribeEvent:completion: | 订阅事件 | 同 V9 |
querySubscribeEvent:completion: | 查询订阅事件 | 同 V9 |
unSubscribeEvent:completion: | 取消订阅事件 | 同 V9 |
SDK 核心类/接口类
以下仅列出 SDK 的核心类和接口类,如需查阅其他类或接口类的信息,请进入iOS SDK API 参考搜索与查阅。
初始化 & 登录相关
类/接口 | 说明 | 对应 V10 API |
---|---|---|
NIMSDK | SDK 核心类,提供初始化 SDK,获取各个服务能力接口,获取当前版本等接口 | NIMSDK |
NIMSDKConfig | SDK 配置项修改的接口 | NIMSDKConfig |
NIMServerSetting | 服务器配置接口,私有化需要自定义设置,必须在注册 AppKey 完成之前设置 | NIMServerSetting |
NIMLoginManager | 登录接口类,提供鉴权、登录、登出、踢人等接口 | V2NIMLoginService |
NIMLoginManagerDelegate | 登录的委托接口,提供登录、登出、踢人等事件注册接口 | V2NIMLoginListener |
消息(单聊 & 群聊 & 聊天室)与会话相关
类/接口 | 说明 | 对应 V10 API |
---|---|---|
NIMChatExtendManager | IM 消息扩展接口类,提供收藏消息、快捷评论等接口 | V2NIMMessageService |
NIMChatExtendManagerDelegate | IM 消息扩展委托接口,提供收藏消息、快捷评论等事件的注册接口 | V2NIMMessageListener |
NIMChatManager | IM 消息管理接口类,提供消息发送、消息查询、消息撤回等相关接口 | V2NIMMessageService |
NIMChatManagerDelegate | IM 消息管理委托接口,提供消息发送、消息查询、消息撤回等相关事件的注册接口 | V2NIMMessageListener |
NIMConversationManager | 会话管理接口类,提供获取/删除会话消息、设置会话消息已读等相关接口 | V2NIMConversationService |
NIMConversationManagerDelegate | 会话管理委托接口,提供会话相关事件的注册接口 | V2NIMConversationListener |
NIMDocTranscodingManager | 文档转码管理接口类,提供查询文档转码信息、删除转码文档等接口 | 同 V9 |
NIMMediaManager | 录制和播放音频管理接口类,提供语音录制和播放相关接口 | 同 V9 |
NIMMediaManagerDelegate | 音频管理委托接口,提供录制、播放音频等事件的注册接口 | 同 V9 |
NIMResourceManager | 资源管理接口类,提供下载、搜索、查询资源等接口 | 同 V9 |
NIMIndexManager | 消息检索接口类,提供消息检索相关接口 | 同 V9 |
APNs 离线推送相关
类/接口 | 说明 | 对应 V10 API |
---|---|---|
NIMApnsManager | IM 的 APNs 离线推送服务接口类,提供 IM 的 APNs 离线推送服务相关配置接口 | V2NIMSettingService |
NIMApnsManagerDelegate | IM 的 APNs 离线推送服务委托接口,提供 IM 的 APNs 离线推送服务相关配置事件的注册接口 | V2NIMSettingListener |
群组相关
类/接口 | 说明 | 对应 V10 API |
---|---|---|
NIMTeamManager | 群组接口类,提供创建群组、添加群成员等群组操作相关接口 | V2NIMTeamService |
NIMTeamManagerDelegate | 群组委托接口,提供群组成员变动、资料变动等事件的注册接口 | V2NIMTeamListener |
超大群相关
类/接口 | 说明 | 对应 V10 API |
---|---|---|
NIMSuperTeamManager | 超大群服务接口类,提供超大群成员管理、超大群消息发送、超大群资料管理等相关接口 | V2NIMTeamService |
聊天室相关
类/接口 | 说明 | 对应 V10 API |
---|---|---|
NIMChatroomManager | 聊天室服务接口类,提供进出聊天室、发送聊天室消息、聊天室成员管理、聊天室队列服务、聊天室标签等接口 | V2NIMChatroomClientListener&V2NIMChatroomListener |
NIMChatroomManagerDelegate | 聊天室委托接口, 提供聊天室相关事件的注册接口 | V2NIMChatroomClient&V2NIMChatroomService |
圈组相关
类/接口 | 说明 | 对应 V10 API |
---|---|---|
NIMQChatManager | 圈组接口类,提供圈组登录登出相关接口 | 同 V9 |
NIMQChatManagerDelegate | 圈组委托接口,提供圈组登录登出相关事件的注册接口 | 同 V9 |
NIMQChatServerManager | 圈组服务器接口类,提供圈组服务器相关接口,如创建服务器、邀请服务器成员、查询服务器成员等接口 | 同 V9 |
NIMQChatChannelManager | 圈组频道接口类,提供圈组频道相关接口,如创建频道、查询频道、查询频道未读信息等接口 | 同 V9 |
NIMQChatRoleManager | 圈组身份组接口类,提供圈组身份组相关接口,如将某人加入身份组、查询自己的权限等接口 | 同 V9 |
NIMQChatMessageManager | 圈组消息接口类,提供发送消息、撤回消息、发送消息正在输入事件等接口 | 同 V9 |
NIMQChatMessageManagerDelegate | 圈组消息委托接口,提供圈组消息相关事件的注册接口 | 同 V9 |
NIMQChatApnsManager | 圈组的 APNs 离线推送服务接口类,提供圈组的 APNs 离线推送服务相关配置接口 | 同 V9 |
NIMQChatRTCChannelManager | 圈组实时互动频道接口类,提供更新、查询实时互动频道信息等接口 | 同 V9 |
NIMQChatMessageExtendManager | 圈组消息扩展接口类,提供发送、删除快捷评论等接口 | 同 V9 |
圈组实时互动频道模块(QChatMedia)
类/接口 | 说明 | 对应 V10 API |
---|---|---|
NIMQChatMediaKit | 圈组实时互动频道接口类,提供圈组实时互动频道的初始化接口 | 同 V9 |
NIMQChatMediaChannelManager | 圈组实时互动频道管理接口类,提供实时互动频道成员管理、摄像头切换、扬声器管理、视频画布设置等接口 | 同 V9 |
NIMQChatMediaChannelDelegate | 圈组实时互动频道委托接口,提供实时互动频道相关事件的注册接口 | 同 V9 |
用户资料 & 用户关系相关
类/接口 | 说明 | 对应 V10 API |
---|---|---|
NIMUserManager | 用户信息与用户关系操作相关接口类,提供用户信息管理和好友关系管理相关接口 | V2NIMUserService&V2NIMFriendService |
NIMUserManagerDelegate | 用户信息与好友关系委托接口,提供好友状态变化,黑名单列表变化等事件的注册接口 | V2NIMUserListener&V2NIMFriendListener |
系统通知相关
类/接口 | 说明 | 对应 V10 API |
---|---|---|
NIMSystemNotificationManager | 系统通知接口类,提供发送、标记、删除系统通知等接口 | V2NIMNotificationService |
NIMSystemNotificationManagerDelegate | 系统通知委托接口, 提供系统通知相关事件的注册接口 | V2NIMNotificationListener |
事件订阅相关
类/接口 | 说明 | 对应 V10 API |
---|---|---|
NIMEventSubscribeManager | 事件订阅接口类,提供发布、查询、订阅事件等接口 | 同 V9 |
NIMEventSubscribeManagerDelegate | 事件订阅委托接口, 提供事件订阅相关事件的注册接口 | 同 V9 |
此文档是否对你有帮助?