iOS SDK 版本历史
[8.2.0] - 2020-12-30
新增
- 新增批量查询群组信息功能;
- 新增批量处理会话未读数接口;
- 删除会话支持配置是否删除漫游;
- 消息撤回支持扩展字段;
修正
- iOS 14相册适配(NIMKit依赖的TZImagePickerController升级版本);
- iOS退后台时,打印下当前的总未读数及回话对应未读数;
- 清理未读数后,打印会话对象的unread与sessionid。
[8.1.5] - 2020-12-21
优化
- 修复极端网络情况下,低概率漫游消息丢失问题;
- 优化了SDK调用NIMHTTPDNSService时偶现的卡顿现象;
- 修复超大群获取属性字段值多端同步问题;
- SDK调用searchMessages:接口,查询结果都按照旧消息到新消息的顺序排列;
[8.1.4] - 2020-12-18
优化
- SDK调用NIMHTTPDNSService的卡顿问题规避
[8.1.3] - 2020-12-9
优化
- 修复偶现闪退问题
[8.1.0] - 2020-11-13
新增
- 文件下载支持配置CDN域名
- 聊天室CDN弹幕功能
- 新增G2音视频话单消息类型
- 增加配置开关,使得同步云端消息到本地时能够自动创建同步消息所对应的会话
[8.0.1] - 2020-10-23
优化
- 修复私有化环境文件上传失败问题
- 修复群成员偶现丢失问题
[8.0.0] - 2020-09-28
新增
消息撤回接口增加附言字段。NIMRevokeMessageOption增加postscript字段,用于设置附言
云端最近会话最后一条消息增加撤回通知类型。NIMRecentSession增加lastMessageType和lastRevokeNotification字段。
标记会话已读接口。增加清空结果回调。参考:NIMConversationManagerDelegate#onMarkMessageReadCompleteInSession
优化
- 远程拉取的消息如果本地数据库存在允许撤回
- 修复大文件上传失败的问题
- 修复新旧版本覆盖安装时出现的数据库错误
[7.9.1] - 2020-09-11
优化
- 增加最近会话的相关日志
[7.8.5] - 2020-08-20
优化
- 修复IOS9 上开启录音出现的crash
[7.8.4] - 2020-08-14
优化
- 修复群成员丢失问题
- 修复大量会话数据同步时造成卡顿的问题
[7.8.3] - 2020-07-31
优化
- 修复上传附件请求的Content-Type类型错误的问题
[7.8.1] - 2020-07-29
新增
- 增加反向查询聊天成员列表,NIMChatroomFetchMemberType新增 NIMChatroomFetchMemberTypeUnRegularReversedOrder, API
优化
- 修复更新自己的群成员信息出现的异常
[7.8.0] - 2020-07-21
新增
- 登录可配置自定义客户端类型,用于自定义互踢功能
- 支持为消息配置子类型
- 删除单条消息支持配置是否记录操作
优化
- 消息查询效率优化,解决因消息数量过多产生搜索卡顿的问题
[7.7.4] - 2020-06-22
优化
- 修复启用Data Protection下的一个崩溃问题
[7.7.2] - 2020-06-12
新增
- 消息增加易盾反垃圾增强反作弊专属字段(详见易盾反垃圾接口文档反垃圾防刷版专属字段)
优化
- 修复多人会议后注销用户出现的崩溃问题
- 修复聊天室消息remoteExt字段为空的问题
[7.7.0] - 2020-05-27
新增
- 第三方回调支持消息变更。NIMMessage中增加第三方回调回来的自定义扩展字段,支持第三方服务器变更该字段。
- 踢出登录接口增加自定义字段信息。NIMLoginManagerDelegate中增加如下回调。
/**
* 被踢(服务器/其他端)回调
*
* @param result 被踢原因
*/
- (void)onKickout:(NIMLoginKickoutResult *)result;
[7.6.0] - 2020-05-13
新增
变更
- 未接通的音视频通话话单通知存离线,漫游和云端历史
- 新增主动停止播放音频回调,与原先的播放完成回调区分。
优化
[7.4.2] - 2020-3-20
新增
- 新增漫游未完整会话相关API接口、回调
/**
* 会话管理器回调
*/
@protocol NIMConversationManagerDelegate <NSObject>
@optional
/**
* 未漫游完整会话列表回调
* @param infos 未漫游完整的会话信息
*/
- (void)onRecvIncompleteSessionInfos:(nullable NSArray<NIMIncompleteSessionInfo *> *)infos;
@end
接口原型
/**
* 会话管理器
*/
@protocol NIMConversationManager <NSObject>
/**
查询漫游消息未完整会话信息
@param session 目标会话
@param completion 结果完成回调
*/
- (void)incompleteSessionInfoBySession:(NIMSession *)session
completion:(nullable NIMIncompleteSessionsBlock)completion;
/**
查询所有漫游消息未漫游完整会话信息
@param completion 结果完成回调
*/
- (void)allIncompleteSessionInfos:(NIMIncompleteSessionsBlock)completion;
/**
更新未漫游完整会话列表
@param messages 消息对象,使用NIMMessage的会话、severId、timestamp、from等去更新b
@param completion 结果完成回调
*/
- (void)updateIncompleteSessions:(NSArray<NIMMessage *> *)messages
completion:(nullable NIMUpdateIncompleteSessionsBlock)completion;
/**
根据会话移除未漫游完整会话信息
@param session 目标会话
*/
- (void)removeIncompleteSessionInfoBySession:(NIMSession *)session;
/**
移除所有未完整会话信息
*/
- (void)removeAllIncompleteSessionInfos;
@end
[7.4.0] - 2020-3-11
新增
- 支持单向删除消息
- 撤回消息支持配置未读数是否加1,支持撤回通知的pushcontent和payload字段
NSDictionary *payload = @{
@"apns-collapse-id": message.messageId,
};
[[NIMSDK sharedSDK].chatManager revokeMessage:message
apnsContent:@"撤回一条消息"
apnsPayload:payload
shouldBeCounted:![[NTESBundleSetting sharedConfig] isIgnoreRevokeMessageCount]
completion:^(NSError * _Nullable error)
{
}];
变更
- 消息推送:iOS 10及以上系统支持payload配置 'apns-collapse-id', 实现后面推送内容覆盖
+ (void)setupMessage:(NIMMessage *)message
{
message.apnsPayload = @{
@"apns-collapse-id": message.messageId,
};
NIMMessageSetting *setting = [[NIMMessageSetting alloc] init];
setting.scene = NIMNOSSceneTypeMessage;
message.setting = setting;
}
修复
- 修复更新消息、最近会话时,多线程下访问出现的崩溃;
- 修复[[NIMSDK sharedSDK] setSceneDict:dict]; 设置有效期过大的问题;
- 优化一些内部逻辑;
[7.2.0] - 2020-1-13
新增
- 服务端消息关键字检索
/**
* 会话管理器
*/
@protocol NIMConversationManager <NSObject>
/**
* 根据关键字从服务器上检索消息
*
* @param session 消息所属的会话
* @param option 检索选项
* @param result 读取的消息列表结果
* @discussion 检索消息内容,大小写不敏感;此接口不支持查询聊天室消息,聊天室请参考 NIMChatroomManagerProtocol 中的消息接口。
*
*/
- (void)retrieveServerMessages:(NIMSession *)session
option:(NIMMessageServerRetrieveOption *)option
result:(nullable NIMRetrieveServerMessagesBlock)result;
@end
- 联系人搜索
@protocol NIMUserManagerProtocol <NSObject>
/**
* 查找成员
*
* @param option 查询条件
* @param completion 完成回调
*/
- (void)searchUserWithOption:(NIMUserSearchOption *)option
completion:(nullable NIMUserInfoBlock)completion;
- 超大群增加移交群主、增加群管理员、移除群管理员
- 超大群增加群禁言、群成员禁言
- 超大群资料修改细化群名称修改,群头像修改,群组验证方式修改,群组被邀请人验证方式修改,群介绍修改,群公告修改,群自定义信息修改几个接口
- 超大群增加同意邀请入群和拒绝邀请入群
- 超大群增加增加申请入群,批准入群和拒绝入群申请
- 超大群增加修改群员昵称
变更
- 多端登录增加具体上下线类型
- 云端历史消息本地入库
- 增加P2P与群聊单向撤回
[7.0.3] - 2019-12-4
新增
- 消息过滤配置接口
@protocol NIMSDKConfigDelegate <NSObject>
/**
* 是否忽略某条消息
*/
- (BOOL)shouldIgnoreMessage:(NIMMessage *)message;
@end
修复
- 修复最近会话未读数为0的问题
- 修复由于断网没有发送成功的群消息已读回执,重连后再发送也不会成功的问题
[7.0.0] - 2019-11-13
新增
- allRecentSessions 增加异步加载完成回调。
@protocol NIMConversationManagerDelegate <NSObject>
/**
* 最近会话数据库读取完成
*
* @discussion 所有最近会话读取完成。设置NIMSDKConfig中的asyncLoadRecentSessionEnabled属性为YES时,此回调会执行。
* 该回调执行表示最近会话全部加载完毕可以通过allRecentSessions来取全部对话。
*/
- (void)didLoadAllRecentSessionCompletion;
@end
- NIMSDKConfig中增加异步读取最近会话选项。
/**
* NIM SDK 配置项目
*/
@interface NIMSDKConfig : NSObject
/**
* 是否开启异步读取最近会话,默认NO,不开启
* @discussion 对于最近会话比较多的用户,初始读取数据库时,可能影响到启动速度,用户可以选择开启该选项,开启异步读取最近会话,
* allRecentSessions会优先返回一部分最近会话,等到全部读取完成时,通过回调通知用户刷新UI。
*/
@property (nonatomic, assign) BOOL asyncLoadRecentSessionEnabled;
@end
- 获取服务端会话列表
@protocol NIMConversationManager <NSObject>
/**
* 从服务端分页获取历史会话列表
*
* @param option 分页查询选项,可为空,空时默认全量获取
*
* @param completion 完成回调
*/
- (void)fetchServerSessions:(nullable NIMFetchServerSessionOption *)option
completion:(nullable NIMFetchRecentSessionsHistoryBlock)completion;
@end
- 获取服务端会话信息
@protocol NIMConversationManager <NSObject>
/**
* 从服务端获取会话信息
*
* @param session 目标会话
*
* @param completion 完成回调
*/
- (void)fetchServerSessionBySession:(NIMSession *)session
completion:(nullable NIMFetchRecentSessionHistoryBlock)completion;
@end
- 更新服务端会话扩展
@protocol NIMConversationManager <NSObject>
/**
* 更新服务端获取会话扩展信息
*
* @param ext 扩展信息
*
* @param session 目标最近会话
*
* @param completion 完成回调
*/
- (void)updateServerSessionExt:(NSString *)ext
session:(NIMSession *)session
completion:(nullable NIMRemoteRecentSessionBlock)completion;
@end
- 删除服务端会话
@protocol NIMConversationManager <NSObject>
/**
* 删除服务端会话
*
* @param sessions 目标会话
*
* @param completion 完成回调
*/
- (void)deleteServerSessions:(NSArray<NIMSession *> *)sessions
completion:(nullable NIMRemoteRecentSessionBlock)completion;
@end
- 自定义推送文档配置
@interface NIMSDK : NSObject
/**
* 更新APNS Token
*
* @param token APNS Token
* @param key 自定义本端推送内容, 设置key可对应业务服务器自定义推送文案; 传@"" 清空配置, nil 则不更改
*/
- (void)updateApnsToken:(NSData *)token
customContentKey:(nullable NSString *)key;
@end
- 本地数据库异常上抛
/**
* 数据库异常信息
*/
@interface NIMDatabaseException : NSObject
/**
* 注册数据库异常处理对象
* @param handler 用户自定义处理对象
*/
+ (void)registerExceptionHandler:(id<NIMDatabaseHandleExceptionProtocol>)handler;
@end
优化
- 暴露消息的服务端id
@interface NIMMessage : NSObject
/**
* 消息服务端ID
*/
@property (nonatomic,copy,readonly) NSString * serverID;
@end
- allRecentSessions 增加异步加载方式,在最近会话量特别大(万级)的情况下防止卡主线程。
/**
* 获取所有最近会话。
* @return 最近会话列表
* @discussion SDK 以 map 的形式保存 sessions,调用这个方法时将进行排序,数据量较大 (上万) 时会比较耗时。
* 该方法默认是同步查询所有sessions,当数据量较大(上万)会比较耗时,可能会卡主线程,这种情况下
* 用户可以配置NIMSDKConfig中的asyncLoadRecentSessionEnabled属性为YES,此时该接口可以先返回
* 100条最近会话,等全部加载完会回调didLoadAllRecentSessionCompletion,此后再调用该接口可以全量返回
* 所有会话,用户需要在didLoadAllRecentSessionCompletion回调中及时更新UI展示。
*/
- (nullable NSArray<NIMRecentSession *> *)allRecentSessions;
修改
- 删除少量获取会话接口(最近100个会话) mostRecentSessions 接口
- 修复获取最近会话偶现的崩溃
[6.10.0] - 2019-10-29
修改
- 获取会话偶现崩溃修复
[6.9.1] - 2019-09-25
新增
- iOS13 推送(Pushkit)适配
[6.9.0] - 2019-09-17
新增
- 少量获取会话接口(最近100个会话)
@protocol NIMConversationManager <NSObject>
/**
* 获取所有最近100条会话
* @return 最近会话列表
* @discussion 用该接口在SDK启动时快速先获取
*/
- (nullable NSArray<NIMRecentSession *> *)mostRecentSessions;
@end
- 点对点音视频通话记录接口
@protocol NIMNetCallManager <NSObject>
/**
* 获取点对点通话记录
*
* @param option 本地查询可选项, nil 返回所有
* @param completion 查询结果回调
*/
- (void)recordsWithOption:(NIMNetCallRecordsSearchOption * _Nullable)option
completion:(NIMNetCallSearchRecordsHandler)completion;
/**
* 清空点对点通话记录
*/
- (void)deleteAllRecords;
@end
- 超大群增加消息撤回功能
- 超大群支持自定义通知
- 超大群增加离线消息处理
- iOS 13 适配:APNs token、视频渲染等
变更
- 添加支持独立聊天室日志上传
- 聊天室优化
- 群通知类型增加线程保护
[6.7.0] - 2019-08-01
新增
- 增加超大群群通知状态接口
@protocol NIMSuperTeamManager
/**
* 修改群通知状态
*
* @param state 群通知状态
* @param teamId 群组ID
* @param completion 完成后的回调
*/
- (void)updateNotifyState:(NIMTeamNotifyState)state
inTeam:(NSString *)teamId
completion:(nullable NIMSuperTeamHandler)completion;
@end
- 增加超大群群通知状态查询接口
@protocol NIMSuperTeamManager
/**
* 群通知状态
*
* @param teamId 群Id
*
* @return 群通知状态
*/
- (NIMTeamNotifyState)notifyStateForNewMsg:(NSString *)teamId;
@end
- 增加所有最近会话接口(临时生成的会话用于过滤最后一条消息)
/**
* 获取所有最近会话
* @return 最近会话列表
* @discussion SDK 以 map 的形式保存 sessions,调用这个方法时将进行排序,数据量较大 (上万) 时会比较耗时。
* 通过该接口获取的最近会话列表与allRecentSessions接口不同,是基于allRecentSessions接口筛选类型之后重新生成的新对象
* 需要用户自行在外部管理,所有回调不回回调该接口查询的任何会话
*/
- (nullable NSArray<NIMRecentSession *> *)allRecentSessionsWithOption:(NIMRecentSessionOption *)option;
- 超大群新增管理员角色,添加和移除管理员需要调用服务端API
超大群增加群组静音、个人禁言
SDK配置项新增是否允许重置AVAudioSession
@interface NIMSDKConfig : NSObject
/**
* 是否允许重置AVAudioSession 默认 YES,允许重置
* @discussion 默认在播放、Seek等操作下会内部重置AVAudioSession,设置为NO后,将不再重置
*/
@property (nonatomic, assign) BOOL audioSessionResetEnabled;
@end
变更
- 客户端反垃圾针对关键字特殊字符优化:增加特殊字符转义
- 聊天室批量更新通知(317类型)内容解析异常问题修复
- 点对点音、视频通话未读数逻辑优化
[6.6.6] - 2019-07-19
新增
- 增加删除时间范围内的本地消息接口
@protocol NIMConversationManager
@end
/**
* 删除指定时间范围内的
*
* @param session 目标会话
* @param option 删除消息选项
* @param block 完成回调
*/
- (void)deleteMessagesInSession:(NIMSession *)session
option:(nullable NIMBatchDeleteMessagesOption *)option
completion:(nullable NIMDeleteMessagesBlock)block;
@end
[6.5.5] - 2019-06-12
新增
超大群是针对大规模群聊场景的功能。目前支持不超过5000人的群聊。由于超大群场景较为特殊,并不能支持所有高级群提供的管理功能。目前超大群仅支持群主与普通成员两种身份(开通超大群功能请联系商务)。 目前支持的功能:
- 基本群操作:拉人入群、踢人、退出、修改群信息,(创建群需要通过服务端API);
- 基本群消息收发、漫游消息、多端同步等;
[6.5.0] - 2019-05-24
新增
- 群成员邀请人查询
@protocol NIMTeamManager <NSObject>
/**
* 获取群成员邀请人Accid
* @param teamId 群组ID
* @param memberIDs 查询的成员ID,数目不允许大于200
* @param completion 完成后的回调
*/
- (void)fetchInviterAccids:(NSString *)teamID
withTargetMembers:(NSArray<NSString *> *)memberIDs
completion:(nullable NIMTeamFetchInviterAccidsHandler)completion;
@end
变更
- 群消息转发推送相关设置优化
- 本地消息搜索优化
- 删除好友备注时多端设备同步删除场景优化
[6.3.0] - 2019-04-18
新增
- 清空点对点历史消息
@protocol NIMConversationManager <NSObject>
/**
* 清空点对点会话对应本地和服务端的消息
*
* @param sessions 目标会话列表
* @param option 清空消息选项
* @param completion 完成回调
* @discussion 只支持点对点,清空本用户的服务端历史消息,不影响对方;如果不设置清空选项,服务端默认会同时清空漫游消息;
*/
- (void)deleteSelfRemoteSession:(NIMSession *)session
option:(nullable NIMClearMessagesOption *)option
completion:(nullable NIMRemoveRemoteSessionBlock)completion;
@end
- 删除好友同时是否删除备注
/**
* 好友协议
*/
@protocol NIMUserManager <NSObject>
/**
* 删除好友
*
* @param userId 好友Id
* @param remove 是否同时删除备注
* @param completion 完成回调
*/
- (void)deleteFriend:(NSString *)userId
removeAlias:(BOOL)remove
completion:(nullable NIMUserBlock)completion;
@end
变更
- 修复登出时本地缓存保存路径异常
- 修复音视频点对点加入房间超时未通知对端挂断异常
- 修复音频设备获取时数组越界
- NIMKit更新SDWebImage版本
[6.2.0] - 2019-03-14
新增
- 使用短链换长链接口
@interface NIMResourceManager : NSObject
/**
* 使用短链换源链
*
* @param shortCode 短链
* @param completion 完成回调
* @discussion 当用户后台配置了NOS文件安全,文件上传的URL为短链,无法直接下载,
* 可通过该接口换取源链
*/
- (void)fetchNOSURLWithURL:(NSString *)shortCode
completion:(NIMFetchURLCompletion)completion;
@end
- 群列表同步完成时回调
@protocol NIMLoginManagerDelegate <NSObject>
@optional
/**
* 群用户同步完成通知
* @param success 群用户信息同步是否成功
*/
- (void)onTeamUsersSyncFinished:(BOOL)success;
@end
变更
- NOS 文件上传、下载接口支持短链
- 话单消息支持存云端、从历史消息获取
- 黑名单消息在漫游、多端同步、历史消息获取时包含是否在黑名单状态
- 修复异步发送消息接口发送自定义消息或者普通消息导致发送失败的问题
[6.1.0] - 2019-01-22
新增
- 历史消息迁移备份相关操作。导出备份,更新备份,获取备份,导入备份,取消操作
/**
导出历史消息到本地文件
@param delegate 自定义消息的处理 delegate
@param progress 导出进度更新回调
@param completion 导出完成回调
*/
- (void)exportMeessageInfosWithDelegate:(id<NIMExportMessageDelegate>)delegate
progress:(NIMExportMessageProgress)progress
completion:(NIMExportMessageComletion)completion;
/**
导入历史消息
@param infoFilePath 已解码并序列化了的本地历史消息文件路径
@param delegate 自定义消息的处理 delegate
@param progress 导入进度更新回调
@param completion 导入完成回调
*/
- (void)importMessageInfosAtPath:(NSString *)infoFilePath
delegate:(id<NIMImportMessageDelegate>)delegate
progress:(NIMImportMessageProgress)progress
completion:(NIMImportMessageCompletion)completion;
/**
取消 导出/导入 历史消息操作
*/
- (void)cancelMigrateMessages;
/**
更新历史消息备份信息
@param URL 历史消息备份的 URL
@param key 历史消息备份的加密 key
@param completion 更新信息的完成回调
*/
- (void)updateMigrateMessageInfoWithURL:(NSString *)URL key:(NSString *)key completion:(NIMUpdateMigrateMessageCompletion)completion;
/**
获取历史消息备份信息
@param completion 获取历史消息备份的完成回调
*/
- (void)fetchMigrateMessageInfo:(NIMFetchMigrateMessageCompletion)completion;
- 撤回消息通知增加属性。是否属于漫游消息撤回,消息附带的附言
/**
* 撤回通知
*/
@interface NIMRevokeMessageNotification : NSObject
/**
* 撤回操作是否属于漫游消息
*/
@property (nonatomic, readonly, getter=isRoaming) BOOL roaming;
/**
* 撤回的附言
*/
@property(nullable, nonatomic, copy) NSString *postscript;
- 异步发送消息
/**
* 异步发送消息
*
* @param message 消息
* @param session 接收方
* @param completion 发送完成后的回调,这里的回调完成只表示当前这个函数调用完成,需要后续的回调才能判断消息是否已经发送至服务器
*/
- (void)sendMessage:(NIMMessage *)message
toSession:(NIMSession *)session
completion:(nullable void(^)(NSError * __nullable error))completion;
- 取消发送消息
/**
* 取消正在发送的消息
*
* @param message 目标消息
*
* @param completion 完成回调
*
* @return 是否调用成功
*/
- (BOOL)cancelSendingMessage:(NIMMessage *)message;
变更
/**
* 邀请用户入群
*
* @param users 用户ID列表
* @param teamId 群组ID
* @param postscript 邀请附言
* @param attach 扩展消息
* @param completion 完成后的回调
*/
- (void)addUsers:(NSArray<NSString *> *)users
toTeam:(NSString *)teamId
postscript:(NSString *)postscript
attach:(NSString *)attach
completion:(nullable NIMTeamMemberHandler)completion;
[5.9.0] - 2018-11-28
新增
- 信令SDK频道相关操作。创建频道、加入频道、离开频道、关闭频道
/**
创建频道
@param request 创建频道请求
@param completion 完成回调
@discussion 该接口用户创建频道,同一时刻频道名互斥,不能重复创建。但如果频道名缺省,服务器会自动分配频道id。对于频道在创建后如果没人加入,有效期2小时,当有成员加入后会自动延续频道有效期。当主动关闭频道或者最后一个成员退出后2小时后频道销毁。
@discussion 错误码 200:成功 10405:房间已存在
*/
- (void)signalingCreateChannel:(NIMSignalingCreateChannelRequest *)request
completion:(nullable NIMSignalingCreateChannelBlock)completion;
/**
关闭频道
@param request 关闭频道请求
@param completion 完成回调
@discussion 该接口可以由创建者和频道内所有成员调用,无权限限制。调用该接口成功后,其他所有频道内的成员都回收到频道结束的通知,被动离开频道。此时其他成员需要调用离开接口,也不会收到别人的离开通知。
@discussion 错误码 200:成功 10406:不在房间内
*/
- (void)signalingCloseChannel:(NIMSignalingCloseChannelRequest *)request
completion:(nullable NIMSignalingOperationBlock)completion;
/**
加入频道
@param request 加入频道请求
@param completion 完成回调
@discussion 错误码 200:成功 10407:已经房间内 10420:已经在房间内(自己的其他端) 10419:房间人数超限 10417:uid冲突
*/
- (void)signalingJoinChannel:(NIMSignalingJoinChannelRequest *)request
completion:(nullable NIMSignalingJoinChannelBlock)completion;
/**
离开频道
@param request 离开频道请求
@param completion 完成回调
@discussion 该接口用于自己退出频道,但不对频道进行销毁
@discussion 错误码 200:成功 10406:不在房间内
*/
- (void)signalingLeaveChannel:(NIMSignalingLeaveChannelRequest *)request
completion:(nullable NIMSignalingOperationBlock)completion;
新增
- 独立呼叫信令邀请加入频道、取消邀请、接受邀请、拒绝邀请相关接口
/**
邀请加入频道
@param request 邀请加入频道请求
@param completion 完成回调
@discussion 该接口用于邀请对方加入频道,邀请者必须是创建者或者是频道中成员。如果需要对离线成员邀请,可以打开离线邀请开关并填写推送信息。被邀请者在线后通过离线通知接收到该邀请,并通过房间信息中的invalid_字段判断房间的有效性,也可以对所有离线消息处理后判断该邀请是否被取消。
@discussion 错误码 200:成功 10404:房间不存在 10406:不在房间内(自己)10407:已经房间内(对方)10419:房间人数超限 10201:对方云信不在线 10202:对方推送不可达
*/
- (void)signalingInvite:(NIMSignalingInviteRequest *)request
completion:(nullable NIMSignalingOperationBlock)completion;
/**
取消邀请
@param request 取消邀请请求
@param completion 完成回调
@discussion 错误码 200:成功 10404:房间不存在 10408:邀请不存在或已过期 10409:邀请已经拒绝 10410:邀请已经接受
*/
- (void)signalingCancelInvite:(NIMSignalingCancelInviteRequest *)request
completion:(nullable NIMSignalingOperationBlock)completion;
/**
拒绝邀请
@param request 拒绝邀请请求
@param completion 完成回调
@discussion 拒绝邀请后用户也可以通过加入频道接口加入频道,接口的使用由用户的业务决定
@discussion 错误码 200:成功 10404:房间不存在 10408:邀请不存在或已过期 10409:邀请已经拒绝 10410:邀请已经接受
*/
- (void)signalingReject:(NIMSignalingRejectRequest *)request
completion:(nullable NIMSignalingOperationBlock)completion;
/**
接受邀请
@param request 接受邀请请求
@param completion 完成回调
@discussion 接受频道接口
不开自动加入开关:该接口只接受邀请并告知邀请者,并同步通知自己的其他在线设备,但不会主动加入频道,需要单独调用加入接口
打开自动加入开关:该接口为组合接口,等同于先调用接受邀请,成功后再加入房间。
@discussion 错误码 200:成功 10404:房间不存在 10408:邀请不存在或已过期 10409:邀请已经拒绝 10410:邀请已经接受 10407:已经房间内 10420:已经在房间内(自己的其他端) 10419:房间人数超限 10417:uid冲突
*/
- (void)signalingAccept:(NIMSignalingAcceptRequest *)request
completion:(nullable NIMSignalingAcceptBlock)completion;
新增
- 独立呼叫信令自定义控制指令
/**
自定义控制指令
@param request 自定义控制指令请求
@param completion 完成回调
@discussion 该接口用于在频道中透传一些自定义指令,协助频道管理。该接口允许非频道内成员调用,但接收者必须是频道内成员或创建者
@discussion 错误码 200:成功 10404:房间不存在 10406:不在房间内(自己或者对方)
*/
- (void)signalingControl:(NIMSignalingControlRequest *)request
completion:(nullable NIMSignalingOperationBlock)completion;
新增
- 创建高级群时可以设置自定义群人数上限
@interface NIMCreateTeamOption : NSObject
/**
* 设置群最大人数上限
* @discussion 默认为0,表示使用默认人数上限
*/
@property (nonatomic,assign) NSUInteger maxMemberCountLimitation;
@end
变更
- 撤回消息支持 apns 推送通知
@interface NIMMessage : NSObject
@property (nullable,nonatomic,copy) NSString *apnsContent;
@property (nullable,nonatomic,copy) NSDictionary *apnsPayload;
@end
[5.7.0] - 2018-10-11
新增
- 登录客户端描述新增自定义信息字段
@interface NIMLoginClient : NSObject
/**
* 自定义信息,最大32个字符;目前android多端登录,TV端和手表端,可以通过该字段区分
*/
@property (nullable,nonatomic,copy,readonly) NSString *customTag;
@end
新增
- NIM SDK 配置项目 新增自定义信息字段
@interface NIMSDKConfig : NSObject
/**
客户端自定义信息,用于多端登录时同步该信息
*/
@property (nonatomic,copy) NSString *customTag;
@end
新增
- 聊天室协议新增批量更新聊天室通用队列元素接口
@protocol NIMChatroomManager <NSObject>
/**
* 批量更新聊天室通用队列元素,权限由 NIMChatroom 的 queueModificationLevel 决定
*
* @param request 聊天室队列批量请求
* @param completion 请求回调
*/
- (void)batchUpdateChatroomQueueObject:(NIMChatroomQueueBatchUpdateRequest *)request
completion:(nullable NIMChatroomQueueBatchUpdateHandler)completion;
@end
优化
- 文件上传支持快传,即上传重复的大文件上传将不不再需要重复传输,相关接口内部优化
新增
- 增加某个最近的空白对话
@protocol NIMConversationManager <NSObject>
/**
* 增加某个最近空白会话
*
* @param recentSession 待增加的最近空白会话
* @discussion 异步方法
*/
- (void)addEmptyRecentSessionBySession:(NIMSession *)session;
@end
变更
- apns推送文案字数限制在500字
[5.5.0] - 2018-08-07
新增
- NIMSDK设置新增NOS资源场景配置字段
@interface NIMSDK : NSObject
@property (nonatomic,strong) NSMutableDictionary *sceneDict;
@end
- 资源管理新增对场景支持的资源上传接口
@protocol NIMResourceManager <NSObject>
- (void)upload:(NSString *)filepath
scene:(NSString *)scene
progress:(nullable NIMHttpProgressBlock)progress
completion:(nullable NIMUploadCompleteBlock)completion;
@end
- 图片实例对象新增场景初始化接口
@interface NIMImageObject : NSObject
- (instancetype)initWithImage:(UIImage*)image scene:(NSString *)scene;
- (instancetype)initWithFilepath:(NSString *)filepath scene:(NSString *)scene;
- (instancetype)initWithData:(NSData *)data
extension:(NSString *)extension
scene:(NSString *)scene;
@end
- 视频实例对象新增场景初始化接口
@interface NIMVideoObject : NSObject
- (instancetype)initWithSourcePath:(NSString *)sourcePath scene:(NSString *)scene;
- (instancetype)initWithData:(NSData *)data
extension:(NSString *)extension
scene:(NSString *)scene;
@end
- 语音实例对象新增场景初始化接口
@interface NIMAudioObject : NSObject
- (instancetype)initWithSourcePath:(NSString *)sourcePath scene:(NSString *)scene;
- (instancetype)initWithData:(NSData *)data
extension:(NSString *)extension
scene:(NSString *)scene;
@end
- 文件实例对象新增场景初始化接口
@interface NIMFileObject : NSObject
- (instancetype)initWithSourcePath:(NSString *)sourcePath scene:(NSString *)scene;
- (instancetype)initWithData:(NSData*)data extension:(NSString*)extension scene:(NSString *)scene;
@end
- 语音实例对象新增音频MD5字段
@interface NIMAudioObject : NSObject
@property (nullable,nonatomic, copy, readonly) NSString *md5;
@end
- 图片实例对象新增图片MD5字段
@interface NIMImageObject : NSObject
@property (nullable,nonatomic, copy, readonly) NSString *md5;
@end
[5.3.0] - 2018-06-26
新增
- 好友信息设置添加仅供服务器设置的扩展字段
@interface NIMUser : NSObject
@property (nullable,nonatomic,copy,readonly) NSString *serverExt;
@end
- 新增富文本推送演示
修正
- 修复部分 bug
[5.2.2] - 2018-06-06
修正
- 修复 SDK 某些情况下会在 armv7 机型上无法安装的问题。
[5.2.1] - 2018-05-28
修正
- 修复调用获取云端消息接口时,如果选择了同时存储到本地,会引发的线程死锁问题。
[5.1.1] - 2018-05-23
修正
- 5.1.0 版本 bug,现已继续支持 bitcode
[5.1.0] - 2018-05-17
新增
- 消息中的附件下载添加取消获取附件的接口
/**
* 聊天委托
*/
@protocol NIMChatManagerDelegate <NSObject>
/**
* 取消收取消息附件
*
* @param message 需要取消收取附件的消息
*
* @discussion 附件包括:图片消息的图片缩略图,视频消息的视频缩略图,音频消息的音频文件,文件消息的文件以及自定义消息中的自定义文件
* 个人和群组消息。SDK 不会触发任何下载回调
*/
- (void)cancelFetchingMessageAttachment:(NIMMessage *)message;
@end
- 添加新的本地错误码表示用户手动取消任务
/**
* 本地错误码 (IM 和通用) Domain NIMLocalErrorDomain
*/
typedef NS_ENUM(NSInteger, NIMLocalErrorCode) {
/**
* 主动取消任务
*/
NIMLocalErrorCodeManualCancelTask = 19,
}
变更
- 聊天室被踢出接口现可直接获取到谁被踢的信息
/**
* 聊天室管理器回调
*/
@protocol NIMChatroomManagerDelegate <NSObject>
/**
* 被踢回调
*
* @param roomId 被踢的聊天室Id
* @param reason 被踢原因
*/
- (void)chatroom:(NSString *)roomId beKicked:(NIMChatroomKickReason)reason;
@end
变更为
/**
* 聊天室管理器回调
*/
@protocol NIMChatroomManagerDelegate <NSObject>
/**
* 被踢回调
*
* @param result 被踢的结果详情
*/
- (void)chatroomBeKicked:(NIMChatroomBeKickedResult *)result;
@end
- 获取服务器历史消息支持根据消息类型筛选,之前该字段只对聊天室会话有效
/**
* 检索服务器历史消息选项 (服务器)
*/
@interface NIMHistoryMessageSearchOption : NSObject
/**
* 查询的消息类型
* @discusssion 消息类型组合,默认为 nil ,搜索全类型。一旦设置了这个字段,则 sync 字段失效,查询结果不会写入 db 。
*/
@property (nonatomic,copy) NSArray<NSNumber *> *messageTypes;
@end
修正
- 某些情况下,调用一些从本地获取接口时发生的线程死锁问题
- 某些情况下,获取消息以及获取系统通知的排序不一致问题
- 聊天室获取消息的时间戳
- 修正不设置 messageType 搜索云端历史消息,无法搜索消息的问题
[5.0.0] - 2018-03-29
新增
- 缓存搜索以及清理接口
@protocol NIMResourceManager <NSObject>
/**
* 搜索缓存的资源文件
*
* @param option 搜索选项
* @param completion 完成回调
*/
- (void)searchResourceFiles:(NIMResourceQueryOption *)option
completion:(NIMResourceSearchHandler)completion;
/**
* 删除缓存的资源文件
*
* @param option 搜索选项
* @param completion 完成回调
*/
- (void)removeResourceFiles:(NIMResourceQueryOption *)option
completion:(NIMResourceDeleteHandler)completion;
@end
- 群组已读模块
@protocol NIMTeamManager <NSObject>
/**
* 刷新群组消息已读、未读数量
*
* @param NIMMessage 要查询的消息
* @discussion 消息已读变化后,会通过 NIMChatManager 的代理 onRecvMessageReceipts: 回调给上层
* 刷新的消息必须为群组消息
*/
- (void)refreshTeamMessageReceipts:(NSArray<NIMMessage *> *)messages;
/**
* 查询群组消息回执详情
*
* @param NIMMessage 要查询的消息
* @discussion 详情包括已读人数的 id 列表和未读人数的 id 列表
* 查询详情对象不会跟着回执人数变化而变化,如果要获取最新的详情,必须再次调用此接口
*
*/
- (void)queryMessageReceiptDetail:(NIMMessage *)message
completion:(NIMQueryReceiptDetailBlock)completion;
@end
- 群组全员禁言接口
@protocol NIMTeamManager <NSObject>
/**
* 禁言群全体成员
*
* @param mute 是否禁言
* @param teamId 群组ID
* @param completion 经验操作完成后的回调
* @discussion 操作成功后,云信服务器会下发禁言的群通知消息
*/
- (void)updateMuteState:(BOOL)mute
inTeam:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
@end
- 本地反垃圾检测接口
@protocol NIMAntispamManager <NSObject>
/**
* 本地反垃圾检查器
*
* @param option 本地反垃圾检查选项
* @param error 错误提示
* @discussion 此扩展不会漫游到其他端,上层需要保证 NSDictionary 可以转换为 JSON。
* @return 本地反垃圾检查结果,本地反垃圾列表会在每次登录后同步更新
* 因为网络问题,或者没有登录,都会导致本地反垃圾列表无效的情况,error 中会包含具体出错原因
*/
- (NIMLocalAntiSpamCheckResult *)checkLocalAntispam:(NIMLocalAntiSpamCheckOption *)option
error:(NSError **)error;
@end
变更
- 收到消息的回执接口的变更
- (void)onRecvMessageReceipt:(NIMMessageReceipt *)receipt;
为
- (void)onRecvMessageReceipts:(NSArray<NIMMessageReceipt *> *)receipts;
[4.8.0] - 2018-02-08
新增
- 保存消息到本地接口新增支持更多的消息种类 ( 除通知类型消息 )
- (void)saveMessage:(NIMMessage *)message
forSession:(NIMSession *)session
completion:(nullable NIMUpdateMessageBlock)completion;
- 音频播发增加设置播放起点功能,可用于拖拽播放进度
/**
* 设置播放音频的起始时间
* @param timestamp 起始时间
* @discussion 起始时间不能大于整个音频的时间,否则播放无效。调用此方法后,不需要再调用 play: 方法,自动播放
*/
- (BOOL)seek:(NSTimeInterval)timestamp;
修正
- 缩略图拼接参数修正,现在会自动判断原图
URL
是否已经带有参数
[4.6.0] - 2018-01-04
新增
- 新增在后台自动执行重连开关
@interface NIMSDKConfig : NSObject
/**
* 是否禁止后台重连
* @discusssion 默认为 NO。即默认情况下,当程序退到后台断开连接后,如果 App 仍能运行,SDK 将继续执行自动重连机制。设置为 YES 后在后台将不自动重连,重连将被推迟到前台进行。
* 只有特殊用户场景才需要此设置,无明确原因请勿设置。
*/
@property (nonatomic,assign) BOOL reconnectInBackgroundStateDisabled;
@end
- 新增聊天室历史记录拉取可以按类型筛选字段
/**
* 检索服务器历史消息选项 (服务器)
*/
@interface NIMHistoryMessageSearchOption : NSObject
/**
* 查询的消息类型
* @discusssion 消息类型组合,默认为 nil ,搜索全类型。 此参数只对聊天室会话有效
*/
@property (nonatomic,copy) NSArray<NSNumber *> *messageTypes;
@end
- 易盾反垃圾,支持对单条消息配置对应的反垃圾业务规则,
NIMAntiSpamOption
新增字段 businessId。
/**
* 反垃圾选项
* @discussion 这个选项用于配置易盾反垃圾,设置 enabled 为 YES (默认为 NO) 后该消息进投递到易盾系统进行反垃圾检测 (需要开启易盾服务)
*/
@interface NIMAntiSpamOption : NSObject
/**
* 用户在易盾配置的额外反垃圾的业务ID
*/
@property (nullable,nonatomic,copy) NSString *businessId;
@end
- 新增聊天室队列权限修改,NIMChatroomUpdateTag中新增字段 NIMChatroomUpdateTagQueueModificationLevel
修正
- 聊天室缓存用户扩展信息,保证掉线重连后不清除
[4.4.0] - 2017-11-16
新增
添加聊天室用户异常掉线或主动退出的时候自动清除队列,包含接口
- NIMChatroomQueueUpdateRequest 添加 transient 属性
- NIMChatroomEventType 添加枚举 NIMChatroomEventTypeQueueBatchChange
- NIMChatroomEventInfoQueueChangeItemsKey 聊天室批量变更元素键,值为包含多个键值对的字典
修正
- 修正清空不存在的最近会话的消息,回调上来的 NIMRecentSession 为 nil 的问题
[4.3.0] - 2017-10-12
新增
- 聊天室独立连接,支持账户密码模式和匿名模式。具体请参考开发文档 - 聊天室 - 独立聊天室模式 章节。
- 添加当前聊天室鉴权模式接口
@protocol NIMLoginManager <NSObject>
/**
* 当前 SDK 鉴权模式
*
* @return 当前 SDK 鉴权模式
*/
- (NIMSDKAuthMode)currentAuthMode;
end
- 添加批量清空会话未读数接口
@protocol NIMConversationManager <NSObject>
/**
* 设置所有会话消息为已读
*
* @discussion 异步方法,消息会标记为设置的状态。不会触发单条 recentSession 更新的回调,但会触发回调 - (void)allMessagesRead
*/
- (void)markAllMessagesRead
@end
- 本地消息搜索接口支持多类型消息搜索
- 添加全局广播推送监听服务
NIMBroadcastManager
- 高级群消息支持 "只接收管理员消息提醒" 的免打扰选项。
- 增加是否支持动态缩略图的配置
animatedImageThumbnailEnabled
@protocol NIMSDKConfig NSObject
/**
* 是否支持动图缩略
* @discusssion 默认为 NO。即默认情况下,从服务器获取原图缩略图时,如果原图为动图,我们将返回原图第一帧的缩略图。
* 而开启这个选项后,我们将返回缩略图后的动图。这个选项只影响从服务器获取的缩略图,不影响本地生成的缩略图。
*/
@property (nonatomic,assign) BOOL animatedImageThumbnailEnabled;
@end
变更
修改通知状态接口变更
(void)updateNotifyState:(BOOL)notify
inTeam:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
为
- (void)updateNotifyState:(NIMTeamNotifyState)state
inTeam:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
查询通知状态接口变更
- (BOOL)notifyForNewMsg:(NSString *)teamId;
为
- (void)updateNotifyState:(NIMTeamNotifyState)state
inTeam:(NSString *)teamId
completion:(nullable NIMTeamHandler)completion;
[4.2.0] - 2017-09-12
新增
聊天室支持 bot 机器人,使用方式与普通消息一致。
添加是否将群通知计入未读的开关
@interface NIMSDKConfig : NSObject
/**
* @discusssion 默认为 NO。设置成 YES 的情况下,收到的群通知也会计入未读数
*/
@property (nonatomic,assign) BOOL shouldCountTeamNotification;
@end
- 添加日志最大存在天数设置
@interface NIMSDKConfig : NSObject
/**
* @discusssion 默认为 7 天。即超过 7 天的 log 将被清除。只能设置大于等于 2 的值。
*/
@property (nonatomic,assign) NSInteger maximumLogDays;
@end
变更
- 创建群接口变更
/**
* 创建群组
*
* @param option 创建群选项
* @param users 用户ID列表
* @param completion 完成后的回调
*/
- (void)createTeam:(NIMCreateTeamOption *)option
users:(NSArray<NSString *> *)users
completion:(nullable NIMTeamCreateHandler)completion;
创建群完成的回调由
/**
* 创建群组block
*
* @param error 错误,如果成功则error为nil
* @param teamId 群组ID
*/
typedef void(^NIMTeamCreateHandler)(NSError * __nullable error,NSString * __nullable teamId);
变更为
/**
* 创建群组block
*
* @param error 错误,如果成功则error为nil
* @param teamId 群组ID
* @param failedUserIds 邀请失败的群成员ID
*/
typedef void(^NIMTeamCreateHandler)(NSError * __nullable error, NSString * __nullable teamId, NSArray<NSString *> * __nullable failedUserIds);
现在创建群可能会出现建群成功,建群同时邀请的用户部分成功的情况。此时建群依然成功,error 信息为 nil ,并返回邀请失败的群成员 ID 集合。
[4.1.0] - 2017-08-08
新增
- SDK 发送群自定义通知支持离线。
- 多端登录客户端类型 NIMLoginClientType 添加 Mac 端。
- 升级 openssl 库至 1.0.2l。
- 添加红包管理器 NIMRedPacketManager,获取金融魔方鉴权 token 。
变更
- 删除消息的接口变更,提供是否同时删除整个表的选项 :
- (void)deleteAllMessages:(BOOL)removeRecentSessions
变更为 :
- (void)deleteAllMessages:(NIMDeleteMessagesOption *)option
[4.0.0] - 2017-07-06
新增
- 智能机器人功能,增加新的机器人管理器
NIMRobotManager
。 - 聊天室连麦队列变更后数据同步,现在可以从
NIMChatroomNotificationContent
中的ext
字段读取到具体的变更数据了。 - 发送聊天室消息时,可以通过设置消息中
NIMMessageSetting
的historyEnabled
字段来控制是否存服务器历史记录。
[3.8.0] - 2017-06-06
新增
- 聊天室针对固定成员,支持 nick, avatar 和 extension 字段的服务器存储。
SDK 点对点音视频接口支持
PushKit
, 新增相关接口:- 新的 SDK 基本配置注入接口,支持填写云信 PushKit 推送证书名
- (void)registerWithOption:(NIMSDKOption *)option;
- 更新云信 PushKit Token
- (void)updatePushKitToken:(NSData *)token;
[3.6.0] - 2017-04-27
新增
新增事件订阅接口,可用于在线状态业务。
- 发布事件
- (void)publishEvent:(NIMSubscribeEvent *)event completion:(NIMEventSubscribeBlock)completion
- 订阅事件
- (void)subscribeEvent:(NIMSubscribeRequest *)request completion:(NIMEventSubscribeResponseBlock)completion
- 取消订阅事件
- (void)unSubscribeEvent:(NIMSubscribeRequest *)request completion:(NIMEventSubscribeResponseBlock)completion
- 查询事件
- (void)querySubscribeEvent:(NIMSubscribeRequest *)request completion:(NIMEventSubscribeQueryBlock)completion
SDK 数据存储优化,读写更加流畅。
- SDK 录音播放能力优化,解决某些场景下导致的卡顿问题。
[3.5.0] - 2017-03-15
新增
- SDK 现在以
.framework
形式提供。 - 聊天室历史消息拉取接口支持逆向拉取。
- 网络通话
- 新增通话录音功能, 可以录制通话中所有参与者的声音并保存为 aac 或 wav 文件
- 新增
alwaysKeepCalling
参数, 用于设置被叫离线时是否仍然需要持续呼叫 - 新增录制对方音视频功能,并保存为 MP4 文件
- 新增本地视频截图,并新增接口
snapshotFromLocalVideoCompletion:
- 点对点视频支持接通前预览
变更
- 网络通话
NIMNetCallType
变为NIMNetCallMediaType
, 涉及点对点通话的 主叫发起通话、被叫收到呼叫 和 切换网络通话类型 三个接口中的通话类型参数,以及加入多人会议的 音视频类型 参数
- MP4视频录制接口的合并调整,调整后本地录制与对端录制使用同一套接口
- 开始录制接口从
startLocalRecording:videoBitrate:
变更为startRecording:videoBitrate:uid:
,新增了用户 userId 参数 - 结束录制接口从
stopLocalRecording:
变更为stopRecordingWithUid:
,新增了用户 userId 参数 - 开始回调从
onLocalRecordStarted:fileURL:
变更为onRecordStarted:fileURL:uid:
,新增了用户 userId 参数 - 错误回调从
onLocalRecordError:callID:
变更为onRecordError:callID:uid:
,新增了用户 userId 参数 - 结束回调从
onLocalRecordStopped:fileURL:
变更为onRecordStopped:fileURL:uid:
,新增了用户 userId 参数
- 开始录制接口从
[3.4.1] - 2017-02-09
修正
- 修复设置了
apnsPayload
option 以后,发起音视频或者白板通话请求失败的问题
[3.4.0] - 2017-01-20
新增
- 互动直播新增服务器录制参数
bypassStreamingServerRecording
变更
- 点对点网络通话状态通知
onCall:status
变更为 以下两个接口:- 通话建立成功:
onCallEstablished:
- 通话异常断开:
onCallDisconnected: withError:
- 通话建立成功:
[3.3.0] - 2016-12-28
新增
- 最近会话更新,开发者可以更方便地添加 @ 标记,会话置顶等功能
NIMRecentSession
新增本地扩展字段localExt
NIMConversationManager
增加本地更新接口updateRecentLocalExt:recentSession:
- 新增进入聊天室时重连次数设置
- 新增进入聊天室通知的信息:
- 禁言标记
- 临时禁言标记
- 临时禁言时长
- 新增文档转码,可以在 PC 端 提交文件转码任务,将 ppt 和 pdf 等文档转码为各种清晰度的图片存储在云端,在移动端获取、下载或者删除转码后的文档
- 网络通话
- 新增文件混音功能,支持实时音视频中开始、暂停、恢复及停止文件混音,支持设置文件播放次数、发送音量和播放音量
- 新增支持高清语音,提供高采样率语音,提高通话体验
- 新增网络探测功能,可探测通话网络的连通性、丢包率和延迟等信息
[3.2.5] - 2016-12-19
新增
- SDK 针对苹果 ATS 策略进行了适配,所有功能已经默认启用
HTTPS
,不再需要额外设置 - 对于信息资料不托管在云信的开发者,在
NIMSDKConfig.h
中增加信息资料的HTTPS
开关enabledHttpsForInfo
[3.2.0] - 2016-11-30
新增
- 在
NIMSDKConfig.h
中增加是否需要多端同步未读数的开关shouldSyncUnreadCount
- 新增多人实时会话(多人白板)服务,支持单播和广播发送实时会话数据
- 网络通话新增语音前处理开关设置,可以选择性关闭语音降噪和人声检测等功能
- 网络通话的网络状况增加用户 id 参数,以区分不同用户的网络状况
- 互动直播新增视频画面混屏模式设置,可以选择预设的几种混屏模式
变更
- 消息撤回回调变更
- 3.2.0 之前:
onMessageRevoked:
- 3.2.0 之后:
onRecvRevokeMessageNotification:
- 3.2.0 之前:
NIMMediaManager
的回调接口和其他管理器一致为addDelegate:
以及removeDelegate:
- 网络通话的网络状况回调接口从
onCall:netStatus:
变更为onNetStatus:user:
,增加了用户 id 参数 - 网络通话的网络状况查询接口 从
netStatus
变更为netStatus:
,增加了用户 id 参数 - 实时会话数据服务器录制文件格式变化:
- 3.2.0 之前:用户发送的数据包直接被写入文件
- 3.2.0 之后:用户发送每一个数据包前增加包头(包长字段和时间戳字段)后再写入录制文件,格式详情请参考互动白板开发集成指南的
服务器录制文件格式
章节 - UI 组件提供更全面,更简洁的配置,并支持 CocoaPods
[3.1.1] - 2016-10-28
修正
- 修正极端情况下,下载接口没有在主线程上回调的问题。
[3.1.0] - 2016-10-26
新增
- 群/聊天室的全体禁言提醒通知以及配置读取
- 获取群的禁言成员列表
- 消息添加反垃圾字段
变更
- 不再兼容 iOS 6.x 系统, 从 iOS 7.0 开始支持
- 请把工程中依赖的系统 c++ 库从 libstdc++.6.0.9.tbd 改为 libc++.tbd
[3.0.0] - 2016-10-20
新增
- 网络通话
- 正在说话的用户及音量信息回调
- 支持实时开始或结束互动直播推流
[2.9.0] - 2016-09-19
新增
- SDK 与 Demo 全面兼容 iOS10
- 网络通话
- 视频采集画面回调和发送,用于应用实现美颜等功能
- 音频采集画面回调和发送,用于应用实现变声等功能
- 摄像头切换完成回调,主要用于视频回调开启时,处理前置摄像头画面的镜像翻转
变更
NIMRTSRequestHandler
和NIMRTSResponseHandler
增加 参数channelID
[2.8.0] - 2016-08-30
新增
- 添加消息撤回功能
- 消息添加来源字段
变更
- 改善断网后立刻重连聊天室容易失败的问题
[2.7.0] - 2016-08-11
新增
- 添加更新聊天室信息接口
- 添加更新本人的聊天室成员信息接口
- 添加获取群邀请和群踢人通知的扩展字段
- 添加消息指定成员推送选项 (强制推送,特殊推送文案等)
- 添加桌面端在线时,消息是否需要推送给手机端的控制开关
- 添加聊天室通用队列服务(支持直播连麦场景使用)
- 网络通话:支持通话中实时切换视频分辨率
- 网络通话:新增视频发送帧率设置
- 网络通话:多人会议新增错误回调
[2.6.0] - 2016-07-25
新增
- 网络通话:提高视频清晰度,新增支持 720P 和 480P 两个等级;默认清晰度提高到高清
- 网络通话:新增 iOS 8.0 以上系统视频硬件编解码支持,并可以在视频过程中实时切换软硬件编码
- 网络通话:新增视频发送码率设置支持,并可以在视频过程中实时改变码率
- 网络通话:新增初始摄像头位置参数,现在可以以后置摄像头开始视频聊天了
- 网络通话/实时会话:新增通话结束时自动结束 AudioSession 开关
- 网络通话:新增获取网络通话网络层 log 文件路径接口
变更
NIMNetCallMeeting
中与网络通话能力相关的参数(清晰度、裁剪、录制、旋转等)全部合并移到option
中
[2.5.0] - 2016-07-08
新增
- 添加定期清理 SDK 日志的功能
- 添加聊天室临时禁言的接口
- 支持转发消息
- 网络通话新增是否自动旋转远端画面的设置
autoRotateRemoteVideo
修正
- 修复聊天室 Tip 消息无法正常解析的问题
[2.4.0]- 2016-06-02
新增
- 创建群添加新的配置项目
- 头像
- 被邀请人同意方式
- 谁可以邀请其他人入群 (默认群主管理员)
- 谁可以修改群资料 (默认群主管理员)
- 谁可以修改群自定义属性 (默认群主管理员)
- 修改群资料
- 头像
- 被邀请人同意方式
- 谁可以邀请其他人入群 (默认群主管理员)
- 谁可以修改群资料 (默认群主管理员)
- 谁可以修改群自定义属性 (默认群主管理员)
- 群通知
- 头像
- 被邀请人同意方式
- 谁可以邀请其他人入群 (默认群主管理员)
- 谁可以修改群资料 (默认群主管理员)
- 谁可以修改群自定义属性 (默认群主管理员)
- 禁言
- 群组禁言功能
- 修改群成员自定义属性
- 通知消息添加控制存储的方式
- NIMMessageSetting 添加抄送选项
- 网络通话新增服务器录制信息回调接口
onNetCallRecordingInfo:
,提供录制的音频和视频文件信息 - 兼容 IPV6
- 完善本地消息搜索
- 用户接口添加静音列表变更的回调
- 所有接口添加 nullablity 特性和泛型特性,使得 swift 接入更简单
变更
NIMRTSRecordingInfo
移除serverAddress
参数NIMSDKConfig
移除hostUserInfo
参数
[2.3.0] - 2016-05-18
新增
- 网络通话新增多人会议,支持视频会议和语音会议。
- 网络通话支持对某用户的音频和视频静音操作。
- 网络通话支持对端画面自动旋转。
变更
请在你的xcode工程中添加 NIMSDK 的新依赖库
VideoToolbox.framework
NIMNetCallManager
变更 远程视频YUV数据就绪 接口 - (void)onRemoteYUVReady:(NSData *)yuvData width:(NSUInteger)width height:(NSUInteger)height
增加参数
user
,改为- (void)onRemoteYUVReady:(NSData *)yuvData width:(NSUInteger)width height:(NSUInteger)height from:(NSString *)user
[2.2.0] - 2016-04-28
修正
- 优化音视频和白板性能。
- 系统消息添加时间排序。
- 修复多端同步时群消息仍旧有未读计数的bug。
- 优化聊天室在弱网络下的连通性。
- 修复无法创建空群名的群的问题。
新增
- 所有多媒体消息统一提供从 NSData 进行初始化的方法。
- 下载添加自动重试流程。
- 网络通话新增服务端录制音频和视频开关参数。
- 网络通话增加全国多节点、直连与中转智能网络路由探测机制。
变更
- 统一各模块拓展信息字段。
[2.1.0] - 2016-03-24
修正
- 提高最近会话的性能。
- 调整内部结构,提高接口线程安全性。
- 修复聊天室在极端情况下无法重连的问题。
- 增加对 Data Protection 特性支持。
新增
- 添加已读回执功能。
- 图片消息添加一种从文件路径进行初始化的方法。
- 网络通话和实时会话发起请求增加可定制的 APNS 推送参数,现在可以设置是否推送、推送角标处理、推送声音和 Playload 等参数了。
变更
NIMNetCallOption
和NIMRTSOption
的message
参数改名为apnsContent
。
[2.0.0] - 2016-02-22
修正
- 修正重复注册 AppKey 可能导致的异常。
新增
- SDK 新增聊天室功能。
[1.8.0] - 2016-01-18
修正
- 修正拉取群成员时,本地可能没有群用户信息的问题。
- 修正系统通知中,本地没有通知关联的用户信息的问题。
- 修正录音时长不准确的问题。
- 修正消息发送者和接收者是同一人时,写入本地消息失败的问题。
- 修正无法按类型标记系统通知已读的问题。
- 修正获取云端历史消息后保存本地没有去重的问题。
- 消息设置
NIMMessageSetting
的shouldBeCounted
字段现在可以正确地影响本地写入消息是否计入未读。 - 修正在某些情况下,用真机连接Xcode后会出现连接失败的情况。
新增
NIMMediaManager
添加是否需要监听感应器的接口- (void)setNeedProximityMonitor:(BOOL)needProximityMonitor
NIMNetCallManager
添加网络通话本地录制接口- (BOOL)startLocalRecording:(NSURL *)filePath videoBitrate:(UInt32)videoBitrate
NIMLoginManager
添加强制自动登录接口。在云信中,我们推荐用户在在首次登录时使用手动登录接口,而后的登录采用非强制的自动登录模式,这种方式可以有效的规避非法异地登录带来的损害。(设备失窃或账号失窃) 非强制模式下的自动登录,服务器将检查当前登录设备是否为上一次登录设备,如果不是,服务器将拒绝这次自动登录。(返回 error code 为 417 的错误) 而强制模式下的自动登录,服务器将不检查当前登录设备是否为上一次登录设备,安全性较低。
- (void)autoLogin:(NIMAutoLoginData *)loginData
变更
NIMAudioObject
和NIMVideoObject
的时长duration
字段目前可写。SDK会根据传入文件信息自动解析出时长,但上层也可以自己设置这个值。
NIMNetCallManager
变更主叫发起通话接口 和 被叫响应呼叫接口主叫发起通话接口:
- (void)start:(NSString *)callee type:(NIMNetCallType)type completion:(NIMNetCallStartHandler)completion
改为
- (void)start:(NSArray *)callees type:(NIMNetCallType)type option:(NIMNetCallOption *)option completion:(NIMNetCallStartHandler)completion
被叫响应呼叫接口:
- (void)response:(UInt64)callID accept:(BOOL)accept completion:(NIMNetCallResponseHandler)completion
改为
- (void)response:(UInt64)callID accept:(BOOL)accept option:(NIMNetCallOption *)option completion:(NIMNetCallResponseHandler)completion
接口新增
推送文案
和自定义扩展字段
。接口新增
指定期望的发送视频清晰度
参数,用于开发者不满足于默认清晰度时传入更期望的清晰度接口新增
禁用视频裁剪
参数,用于开发者不希望SDK为了优化运算性能和网络占用而裁剪发送视频NIMNetCallManagerDelegate
被叫收到呼叫回调增加参数extendMessage
被叫收到呼叫 回调接口:
- (void)onReceive:(UInt64)callID from:(NSString *)caller type:(NIMNetCallType)type
改为
- (void)onReceive:(UInt64)callID from:(NSString *)caller type:(NIMNetCallType)type message:(NSString *)extendMessage
[1.7.1] - 2015-12-04
修正
- 修正应用重启后无法读取消息扩展字段的问题。
[1.7.0] - 2015-12-01
修正
- 修正录音有延迟的问题。
- 修正音视频聊天,视频模式切换到音频模式,再回到视频,弱网下对端会累积延迟的问题。
- 修正视频聊天切换前后摄像头以后,弱网累积延迟的问题。
- 解决音视频文件重复发送会本地报错的问题。
新增
- 消息是否被删除的标记
isDeleted
- 添加 Tip 类型消息
NIMMessageTypeTip
- 消息添加更多内容字段
- 本地拓展字段
localExt
- 服务器拓展字段
remoteExt
- 推送内容字段
apnsContent
- 推送 Payload 字段
apnsPayload
- 本地拓展字段
- 消息添加服务器配置
- 是否支持历史消息
historyEnabled
- 是否支持漫游
roamingEnabled
- 是否支持多端同步
syncEnabled
- 是否需要计入未读
shouldBeCounted
- 是否需要进行推送
apnsEnabled
- 推送是否需要带前缀
apnsWithPrefix
- 是否支持历史消息
- 自定义系统通知更多内容字段
- 推送内容字段
apnsContent
- 推送 Payload字段
apnsPayload
- 推送内容字段
- 自定义系统通知添加服务器配置
- 是否需要计入未读
shouldBeCounted
- 是否需要进行推送
apnsEnabled
- 推送是否需要带前缀
apnsWithPrefix
- 是否需要计入未读
支持通过 message Id 获取消息
- (NSArray *)messagesInSession:(NIMSession *)session messageIds:(NSArray *)messageIds;
系统通知支持按照类型进行操作,新增接口
1.按类型获取本地系统通知
- (NSArray *)fetchSystemNotifications:(NIMSystemNotification *)notification limit:(NSInteger)limit filter:(NIMSystemNotificationFilter *)filter;
2.按类型获取系统通知未读数
- (NSInteger)allUnreadCount:(NIMSystemNotificationFilter *)filter;
3.删除所有命中过滤器的系统消息
- (void)deleteAllNotifications:(NIMSystemNotificationFilter *)filter;
4.标记所有命中过滤器的系统消息为已读
- (void)markAllNotificationsAsRead:(NIMSystemNotificationFilter *)filter;
增加好友关系字段
- 备注名
alias
- 扩展字段
ext
- 备注名
变更
自定义消息下载托管时的下载路径现在由用户自定义
- (void)updateDownloadAttachmentPath:(NSString *)path;
变更为
- (NSString *)attachmentPathForDownloading;
[1.6.0] - 2015-11-02
修正
- 修正iPhone4 音视频通话闪退的问题。
新增
- 创建群时允许同时设置客户端自定义信息。
变更
- 现在允许开发者写入消息的来源字段from。个人会话中的from限制为当前sessionId或者当前用户Id。
[1.5.0] - 2015-09-29
新增
- 用户信息托管
- 自定义消息下载托管
- 新增支持文本消息直接写入数据库
- 增加bitcode编译选项,更好地支持XCode7和iOS9
- 视频聊天增加接口
-(void)onRemoteYUVReady:width:height:
- 可以用得到的yuv数据直接OpenGL渲染远程画面
- 优化了弱网络下的视频聊天体验
- 开源UI组件,新增联系人选择器、群名片。
变更
- 部分接口命名调整
设置一个会话里所有消息置为已读
- (void)markAllMessageReadInSession:(NIMSession *)session
改为
- (void)markAllMessagesReadInSession:(NIMSession *)session
获取所有最近会话
- (NSArray*)allRecentSession
改为
- (NSArray*)allRecentSessions
标记单条系统消息为已读
- (void)markNotificationAsRead:(NIMSystemNotification *)notification
改为
- (void)markNotificationsAsRead:(NIMSystemNotification *)notification
标记所有系统消息为已读
- (void)markAllNotificationAsRead
改为
- (void)markAllNotificationsAsRead
[1.4.0] - 2015-09-02
新增
- 好友系统
- 黑名单接口
- 消息提醒接口
- 开源 UI 组件,帮助你更快实现 IM 模块
变更
无
[1.3.0] - 2015-07-31
新增
- 搜索本地消息记录接口
- 语音转文字接口
- apns 推送支持更多的自定义属性
变更
- 自定义消息调整接口,接口更灵活,并支持托管上传功能
[1.2.0] - 2015-06-23
新增
- 消息多端同步
- 自定义推送设置
- 群免打扰开关
- 支持自动登录
变更
- 会话回调调整
所有新增会话调用
- (void)didAddRecentSession:(NIMRecentSession *)recentSession
其它更新会话则调用
- (void)didUpdateRecentSession:(NIMRecentSession *)recentSession
totalUnreadCount:(NSInteger)totalUnreadCount
[1.1.0] - 2015-05-25
新增
- 网络通话
- 网络视频
- 聊天历史消息云端存储及查询功能(按需存储)
- 多端登录同步通知功能
变更
- 高级群群成员实时同步
- 支持自定义群组功能
- 添加文件消息类型
- 从云端查询消息历史功能,查询接口可选择合并到本地
- 新消息通知栏提醒的文案改为可自定义
- 调整透传指令和自定义通知的接口
网易云信SDK首版上线
连接管理
- 登录与退出
- 重新连接
- 连接状态事件
用户管理
- 创建用户
- 更新用户
会话消息
- 发送与接收消息
- 多媒体信息下载(图片/文件/语音等)
- 消息已读状态
- 文件收发状态
- 最近联系人列表显示与管理
- 消息记录查询与多种删除方式
普通群(类讨论组)
- 创建及解散普通群
- 添加成员
- 退出普通群
- 获取群成员列表
- 获取某帐号已加入的群列表
- 更新、发送、接收群组消息
- 群成员/资料变更事件
- 群列表变更事件
高级群(类企业群)
- 创建及解散普通群高级群
- 添加成员
- 退出高级群
- 成员权限配置
- 邀请入群
- 入群验证配置
- 踢人出群
- 获取群成员
- 群列表变更事件
- 获取群资料
- 群成员/资料变更事件
- 获取某帐号已加入的群列表
- 更新、发送、接收群消息
推送
- 推送消息事件


此文档对你是否有帮助

