IM 即时通讯
iOS
产品介绍
简介
主要功能
产品优势
功能介绍
帐号集成与登录
基础消息功能
群组功能
聊天室功能
聊天室标签功能
圈组功能
多端登录与互踢策略
质量数据监控台
海外数据中心
IM平滑迁移方案
接口及业务限制
更新日志
IM UIKit 更新日志
NIM SDK 开发版更新日志
NIM SDK 稳定版更新日志
体验 Demo
下载 SDK 与 Demo 源码
快速开始
跑通 IM Demo 源码
跑通圈组 Demo 源码
实现单聊消息收发(不含 UI)
实现圈组消息收发(不含 UI)
含 UI 集成
什么是 IM UIKit
IM UIKit 功能概览
快速集成 IM UIKit
组件导入
初始化与登录
界面跳转
自定义用户信息
会话列表相关
集成会话列表界面
自定义会话列表 UI
会话列表 API 概览
会话消息相关
集成会话消息界面
实现地理位置消息功能
实现音视频通话
实现自定义消息收发
自定义会话消息 UI
会话消息 API 概览
通讯录相关
集成通讯录界面
自定义通讯录 UI
通讯录 API 概览
IM UIKit API 概览
不含 UI 集成
集成 SDK
初始化
登录相关
登录 IM
多端登录与互踢
登出 IM
消息相关
消息概述
消息收发
自定义消息收发
消息配置选项
NOS 资源场景
广播消息收发
消息已读回执
消息撤回
消息重发与转发
消息更新
消息过滤
语音消息处理
本地消息插入
历史消息
最近会话
服务端会话服务
用户资料
用户关系
在线状态订阅
系统通知
离线推送
群组功能
群组概述
群组管理
群成员管理
群消息管理
超大群功能
聊天室
圈组功能
圈组概述
登录管理
服务器相关
服务器概述
服务器管理
服务器成员管理
游客功能
服务器未读数管理
频道相关
频道概述
频道管理
频道黑白名单
实时互动频道
频道分组
频道分组黑白名单
频道未读数管理
搜索服务器与频道
身份组相关
身份组概述
身份组应用场景
服务器身份组
频道身份组
频道分组身份组
用户定制权限
自定义权限项
成员权限查询与判定
身份组相关查询
圈组订阅机制
圈组消息相关
图解圈组消息流转
圈组消息收发
圈组消息撤回
圈组消息更新
圈组消息删除
消息正在输入
会话消息回复(Thread)
圈组快捷评论
圈组消息缓存
圈组消息搜索
查询历史消息
查询@我的消息
圈组系统通知相关
圈组系统通知概述
圈组系统通知收发
圈组系统通知更新
圈组离线推送
圈组内容审核
圈组第三方回调
圈组相关抄送
圈组各端接口命名差异
反垃圾
聊天扩展
其他
最佳实践
IM 登录最佳实践
聊天室重要消息投递
参考文档
iOS PushKit 配置
iOS苹果推送配置
API 参考
iOS SDK API
iOS SDK 状态码
IM 控制台指南
创建应用
注册 IM 账号
升级服务
开通聊天室功能
配置客户端应用标识
常见问题
FAQ
错题集
iOS 推送问题排查
服务协议

历史版本更新日志

更新时间: 2022/12/27 15:34:45

V5.6.0 及后续版本,请参考历史版本更新日志

[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 字段读取到具体的变更数据了。
  • 发送聊天室消息时,可以通过设置消息中 NIMMessageSettinghistoryEnabled 字段来控制是否存服务器历史记录。

[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:
  • 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
  • 网络通话
    • 视频采集画面回调和发送,用于应用实现美颜等功能
    • 音频采集画面回调和发送,用于应用实现变声等功能
    • 摄像头切换完成回调,主要用于视频回调开启时,处理前置摄像头画面的镜像翻转

变更

  • NIMRTSRequestHandlerNIMRTSResponseHandler 增加 参数 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 等参数了。

变更

  • NIMNetCallOptionNIMRTSOptionmessage 参数改名为 apnsContent

[2.0.0] - 2016-02-22

修正

  • 修正重复注册 AppKey 可能导致的异常。

新增

  • SDK 新增聊天室功能。

[1.8.0] - 2016-01-18

修正

  • 修正拉取群成员时,本地可能没有群用户信息的问题。
  • 修正系统通知中,本地没有通知关联的用户信息的问题。
  • 修正录音时长不准确的问题。
  • 修正消息发送者和接收者是同一人时,写入本地消息失败的问题。
  • 修正无法按类型标记系统通知已读的问题。
  • 修正获取云端历史消息后保存本地没有去重的问题。
  • 消息设置 NIMMessageSettingshouldBeCounted 字段现在可以正确地影响本地写入消息是否计入未读。
  • 修正在某些情况下,用真机连接Xcode后会出现连接失败的情况。

新增

  • NIMMediaManager 添加是否需要监听感应器的接口

    - (void)setNeedProximityMonitor:(BOOL)needProximityMonitor
    
  • NIMNetCallManager 添加网络通话本地录制接口

    - (BOOL)startLocalRecording:(NSURL *)filePath
                videoBitrate:(UInt32)videoBitrate
    
  • NIMLoginManager 添加强制自动登录接口。

    在云信中,我们推荐用户在在首次登录时使用手动登录接口,而后的登录采用非强制的自动登录模式,这种方式可以有效的规避非法异地登录带来的损害。(设备失窃或账号失窃) 非强制模式下的自动登录,服务器将检查当前登录设备是否为上一次登录设备,如果不是,服务器将拒绝这次自动登录。(返回 error code 为 417 的错误) 而强制模式下的自动登录,服务器将不检查当前登录设备是否为上一次登录设备,安全性较低。

    - (void)autoLogin:(NIMAutoLoginData *)loginData
    

变更

  • NIMAudioObjectNIMVideoObject 的时长 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

新增

  • 网络通话
  • 网络视频
  • 聊天历史消息云端存储及查询功能(按需存储)
  • 多端登录同步通知功能

变更

  • 高级群群成员实时同步
  • 支持自定义群组功能
  • 添加文件消息类型
  • 从云端查询消息历史功能,查询接口可选择合并到本地
  • 新消息通知栏提醒的文案改为可自定义
  • 调整透传指令和自定义通知的接口

网易云信IM SDK首版上线

连接管理

  • 登录与退出
  • 重新连接
  • 连接状态事件

用户管理

  • 创建用户
  • 更新用户

会话消息

  • 发送与接收消息
  • 多媒体信息下载(图片/文件/语音等)
  • 消息已读状态
  • 文件收发状态
  • 最近联系人列表显示与管理
  • 消息记录查询与多种删除方式

普通群(类讨论组)

  • 创建及解散普通群
  • 添加成员
  • 退出普通群
  • 获取群成员列表
  • 获取某帐号已加入的群列表
  • 更新、发送、接收群组消息
  • 群成员/资料变更事件
  • 群列表变更事件

高级群(类企业群)

  • 创建及解散普通群高级群
  • 添加成员
  • 退出高级群
  • 成员权限配置
  • 邀请入群
  • 入群验证配置
  • 踢人出群
  • 获取群成员
  • 群列表变更事件
  • 获取群资料
  • 群成员/资料变更事件
  • 获取某帐号已加入的群列表
  • 更新、发送、接收群消息

推送

  • 推送消息事件
此文档是否对你有帮助?
有帮助
我要吐槽
  • [5.5.0] - 2018-08-07
  • 新增
  • [5.3.0] - 2018-06-26
  • 新增
  • 修正
  • [5.2.2] - 2018-06-06
  • 修正
  • [5.2.1] - 2018-05-28
  • 修正
  • [5.1.1] - 2018-05-23
  • 修正
  • [5.1.0] - 2018-05-17
  • 新增
  • 变更
  • 修正
  • [5.0.0] - 2018-03-29
  • 新增
  • 变更
  • [4.8.0] - 2018-02-08
  • 新增
  • 修正
  • [4.6.0] - 2018-01-04
  • 新增
  • 修正
  • [4.4.0] - 2017-11-16
  • 新增
  • 修正
  • [4.3.0] - 2017-10-12
  • 新增
  • 变更
  • [4.2.0] - 2017-09-12
  • 新增
  • 变更
  • [4.1.0] - 2017-08-08
  • 新增
  • 变更
  • [4.0.0] - 2017-07-06
  • 新增
  • [3.8.0] - 2017-06-06
  • 新增
  • [3.6.0] - 2017-04-27
  • 新增
  • [3.5.0] - 2017-03-15
  • 新增
  • 变更
  • [3.4.1] - 2017-02-09
  • 修正
  • [3.4.0] - 2017-01-20
  • 新增
  • 变更
  • [3.3.0] - 2016-12-28
  • 新增
  • [3.2.5] - 2016-12-19
  • 新增
  • [3.2.0] - 2016-11-30
  • 新增
  • 变更
  • [3.1.1] - 2016-10-28
  • 修正
  • [3.1.0] - 2016-10-26
  • 新增
  • 变更
  • [3.0.0] - 2016-10-20
  • 新增
  • [2.9.0] - 2016-09-19
  • 新增
  • 变更
  • [2.8.0] - 2016-08-30
  • 新增
  • 变更
  • [2.7.0] - 2016-08-11
  • 新增
  • [2.6.0] - 2016-07-25
  • 新增
  • 变更
  • [2.5.0] - 2016-07-08
  • 新增
  • 修正
  • [2.4.0]- 2016-06-02
  • 新增
  • 变更
  • [2.3.0] - 2016-05-18
  • 新增
  • 变更
  • [2.2.0] - 2016-04-28
  • 修正
  • 新增
  • 变更
  • [2.1.0] - 2016-03-24
  • 修正
  • 新增
  • 变更
  • [2.0.0] - 2016-02-22
  • 修正
  • 新增
  • [1.8.0] - 2016-01-18
  • 修正
  • 新增
  • 变更
  • [1.7.1] - 2015-12-04
  • 修正
  • [1.7.0] - 2015-12-01
  • 修正
  • 新增
  • 变更
  • [1.6.0] - 2015-11-02
  • 修正
  • 新增
  • 变更
  • [1.5.0] - 2015-09-29
  • 新增
  • 变更
  • [1.4.0] - 2015-09-02
  • 新增
  • 变更
  • [1.3.0] - 2015-07-31
  • 新增
  • 变更
  • [1.2.0] - 2015-06-23
  • 新增
  • 变更
  • [1.1.0] - 2015-05-25
  • 新增
  • 变更
  • 网易云信IM SDK首版上线
  • 连接管理
  • 用户管理
  • 会话消息
  • 普通群(类讨论组)
  • 高级群(类企业群)
  • 推送