NIM SDK 开发版更新日志

更新时间: 2024/04/17 10:39:45

近期重要更新

  • 支持按群成员类型分页查询群成员列表。
  • 支持添加特别关注群成员列表。
  • 新增鸿蒙终端类型的解析。
  • 支持分页查询指定圈组消息下的某一快捷评论类型的所有用户信息,具体请参考圈组快捷评论
  • 支持圈组本地缓存能力,为方便用户按需存储圈组消息草稿,可以向本地数据库插入文本消息,同时可删除和查询该缓存消息,具体请参考插入本地圈组消息草稿

[9.16.0] - 2024-04-16

新增特性

  • 支持按群成员类型分页查询群成员列表。
  • 支持添加特别关注群成员列表。
  • 新增鸿蒙终端类型的解析。
  • 圈组支持根据身份组优先级获取成员身份组列表。
  • IM iOS SDK 中新增 PrivacyInfo.xcprivac 隐私文件,兼容苹果公司的隐私更新。

API 新增

方法/回调/类 说明
getTeamMemberList 根据群成员类型获取成员列表。
addTeamMembersFollow 在群组中添加需要特别关注的群成员。
removeTeamMembersFollow 在群组中移除特别关注的群成员。
getExistingAccidsInServerRole 根据身份组优先级获取成员身份组列表。

API 变更

方法/回调/类 说明
NIMLoginClientType 新增 HarmonyOS 客户端,多端登录支持鸿蒙客户端类型的解析。

[9.15.2] - 2024-04-11

NIM iOS SDK 中新增 PrivacyInfo.xcprivac 隐私文件,兼容苹果公司的隐私更新。具体导入方式请参见苹果隐私策略说明

[9.15.1] - 2024-03-06

修复已知问题。

[9.15.0] - 2024-01-31

新增特性

  • 支持分页查询指定圈组消息下的某一快捷评论类型的所有用户信息,具体请参考圈组快捷评论
  • 支持圈组本地缓存能力,为方便用户按需存储圈组消息草稿,可以向本地数据库插入文本消息,同时可删除和查询该缓存消息,具体请参考插入本地圈组消息草稿
  • 支持将发送失败的消息自动缓存到本地,可通过查询圈组历史消息(getMessageHistory)时选择是否包含发送失败(includeLocalMessages)的消息实现,具体请参考查询历史消息

API 新增

方法/类/枚举 说明
getCommentators 新增接口,用于分页查询指定圈组消息下的某一快捷评论类型的所有用户信息。
insertOrReplaceTextCache 新增接口,用于向本地数据库插入一条缓存数据,如果该频道下已经存在数据,则被新数据覆盖。
deleteTextCache 新增接口,用于删除圈组本地缓存数据。
getTextCache 新增接口,用于查询圈组本地缓存数据。
getMessageHistory 该方法的入参 NIMQChatGetMessageHistoryParam 新增 includeLocalMessages 字段,表示是否查询发送失败的圈组消息。

[9.14.2] - 2024-01-15

内部优化。

[9.14.1] - 2023-12-06

内部逻辑优化。

[9.14.0] - 2023-11-10

登录和消息发送逻辑优化。

[9.13.1] - 2023-10-25

内部优化。

[9.12.1] - 2023-08-01

  • NIMSDKConfig 新增 reportIgnoredMessage 字段,支持配置是否上报被过滤的消息。
  • 修复海外用户发送图片失败的问题。

[9.12.0] - 2023-07-07

新增特性

圈组订阅机制支持自动订阅。开启自动订阅后,当用户登录到圈组服务器,无需手动订阅服务器或频道,进入服务器或频道时即可收到消息、事件和系统通知,退出时则自动取消订阅。具体请参考圈组订阅机制

优化

优化第三方回调登录内部逻辑,具体请参见通过第三方回调登录 IM

修复

本次版本修复以下问题:

  • 当批量将会话消息未读数清零(标记已读)时,会话数量过大导致报错。
  • 当会话未读数为 0 时,调用 markAllMessagesReadInSession:completion: 未触发 completion 回调。
  • 添加圈组快捷评论时报 syntax error 错误。

API 变更

API 说明
NIMQChatConfig#autoSubscribe 新增圈组自动订阅开启/关闭参数。
NIMSDKConfig#reconnectInBackgroundStateDisabled 废弃该接口,即不支持配置退至后台的重连策略。云信使用退至后台仍允许重连的策略。

[9.11.2] - 2023-06-20

  • 修复使用 NOS 上传文件,取消上传时崩溃的问题。
  • 修复 AWS S3 优发送图片消息,长时间无回应的问题。
  • 修复上传文件失败重试,延迟时间过大的问题。
  • 修复其他已知问题。

[9.11.0] - 2023-05-31

新增特性

  • 支持接入第三方机器人,在一对一(P2P)和群组(高级群,Team)场景中与机器人进行互动,具体请参考接入第三方机器人

  • 新增第三方回调动态登录模式,具体请参考登录 IM

  • 新增数据准备完成的回调,具体请参考监听数据准备完成事件

修复

  • 修复用户频繁登录时发生报错的问题。
  • 修复调用 udpateStickTopSession 更新置顶会话扩展信息未生效的问题。
  • 修复其他已知问题。

API 变更

API 说明
onDataReady 新增数据准备完成回调接口,当消息数据库开启完成后,通知用户数据已准备完成,可以开始发送消息。
dynamicLoginExtForAccount: 新增获取 IM 动态登录扩展信息,用于实现通过第三方回调动态登录 IM。
dynamicChatRoomTokenForAccount: 新增获取聊天室动态 Token,用于实现通过动态 Token 登录聊天室。
dynamicChatRoomLoginExtForAccount: 新增获取聊天室动态登录扩展信息,用于实现通过第三方回调动态登录聊天室。
fetchQuickComments:completion: 获取圈组快捷评论接口返回的数据中新增快捷评论的创建时间,即 NIMQChatMessageQuickCommentsDetail 中新增获取评论创建时间的接口(createTime)。
NIMMessage 消息体中新增机器人信息字段(robotInfo),用于实现机器人消息功能。

[9.10.1] - 2023-04-20

修复已知问题。

[9.10.0] - 2023-04-11

API 变更

初始化参数 NIMSDKConfig 中新增 fixMsgStatusByBlackList 配置项,默认关闭。开启后,消息状态是否成功需要结合 isInBlockList(通过解析消息体得到该字段)进行判断:

  • 同步接收到的消息,如果 isInBlockList==true,则消息状态修改为 failed。
  • 查询云端历史消息,如果 isInBlockList==true,则消息状态修改为 failed。

优化

  • 优化内部拉黑后的消息重发逻辑,具体请参考消息重发
  • 优化定义圈组频道未读信息的 NIMQChatUnreadInfo 类,补充缺失字段。
  • 优化圈组订阅回调机制。(订阅圈组服务器/频道后,只有未读数变更时才触发回调。)

问题修复

  • 修复获取本地历史记录传入 order 无效的问题。
  • 修复卡顿问题。
  • 修复其他已知问题。

[9.9.2] - 2023-03-09

新增特性

新增 “圈组用户资料复用 IM 用户资料” 的能力。

  • 如果某用户未配置自己的服务器成员信息,该用户进入服务器后的初始成员信息将直接复用对应的 IM 用户资料(目前仅支持复用昵称和头像)。

  • 如果某用户在未配置自己的服务器成员信息的情况下修改了自己的 IM 用户资料(昵称或头像),系统通知(通知类型NIMQChatSystemNotificationTypeMyMemberInfoUpdated)将触发,通知该用户需要在哪些服务器重新获取资料。

API 变更

API 新增

API
API 说明
createTeam:completion: 创建群组的新接口 原创建群接口createTeam:users:completion:已废弃。

数据结构变更

  • 圈组的系统通知类型NIMQChatSystemNotificationType中新增枚举MY_MEMBER_INFO_UPDATED,表示修改 IM 用户资料触发的圈组服务器成员信息的联动修改。该系统通知的具体触发条件、接收者和接收条件,请参见圈组系统通知概述中对USER_INFO_UPDATE(35)的说明。

  • 圈组系统通知的投递对象类型NIMQChatSystemNotificationToType新增枚举值NIMQChatSystemNotificationToTypeAccids,表示发送给指定的用户。

问题修复

部分已知问题修复与优化。

[9.9.0] - 2023-02-09

新增特性

SDK 支持查询指定频道中@当前用户的未读消息,同时也支持批量查询消息是否@当前用户。具体请参见查询@我的消息

API 新增

API
API 说明
getMentionedMeMessages:completion: 查询指定频道中@当前用户的未读消息
areMentionedMeMessages:completion: 批量查询消息是否@当前用户

优化

  • 优化内部索引,解决获取本地历史消息记录查询慢的问题。
  • 修复由于聊天室消息收发引起的卡顿问题。
  • 修复 checkPermissions:completion: 接口在 swift 环境调用产生崩溃的问题。
  • 修复其他已知问题。

[9.8.0] - 2022-12-27

该版本的圈组模块新增了游客功能。

新增特性

序号
新增特性
特性描述
相关文档
1 游客功能 以游客身份进入服务器,可查询部分信息和接收消息,也可接收部分系统通知 游客功能
2 频道对游客的可见性 创建和修改频道时可设置频道是否对游客可见 频道管理
3 频道分组对游客的可见性 如果频道对游客可见,则包含该频道的频道分组也对游客可见,且频道分组的查看模式变更可能导致频道对游客的可见性变更 频道分组
4 频道可见性变更系统通知 新增系统通知类型NIMQChatSystemNotificationTypeVisitorChannelVisibilityUpdate,表示频道对游客的可见性发生变更 游客可接收的系统通知

API 变更

新增 API

API
API 说明
enterAsVisitor:completion: 以游客身份进入服务器
leaveAsVisitor:completion: 以游客身份离开服务器
NIMQChatChannelManager#subscribeAsVisitor:completion: 以游客身份订阅频道
NIMQChatServerManager#subscribeAsVisitor:completion: 以游客身份订阅服务器

变更 API

API
API 说明 变更说明
createChannel:completion: 创建频道 新增参数visitorMode,用于设置频道是否对游客可见
updateChannel:completion: 修改频道信息 新增参数visitorMode,用于设置频道是否对游客可见

问题修复

修复部分已知问题。

[9.7.0] - 2022-12-2

新增特性

IM 新增动态查询连续完整的历史消息功能,具体请参见动态查询历史消息

相较于频繁从云端获取,该查询方法在保证历史消息完整的同时,减少了耗时和耗能。

API 新增

API API 说明
getMessagesDynamically: 动态查询连续完整的历史消息

修复

修复已知问题。

[9.6.3] - 2022-10-27

新增特性

v9.6.3 的聊天室模块,新增根据标签(Tags)查询聊天室历史消息的功能,具体请参见根据标签查询历史消息

API 新增

API
API 说明
getMessagesByTags 通过聊天室标签(可多个)来检索聊天室历史消息
tagsUpdate 监听聊天室标签变更事件,回调包含变更标签的聊天室 ID 和变更后的标签信息

API 变更

API
API 说明
NIMMessage 消息结构体中新增rawAttachContent参数,表示消息附件的字符串内容
NIMQChatMessage 圈组消息结构体中新增rawAttachContent参数,表示圈组消息附件的字符串内容

[9.6.1] - 2022-10-12

  • 修复getChannelMembersByPage:方法参数校验错误的问题。
  • 修复 iOS 进程退出过程中系统 HTTP 请求应答处理过程崩溃的问题。
  • 其他已知问题修复。

[9.6.0] - 2022-9-26

v9.6.1 修复了 v9.6.0 可能导致线上崩溃的问题。如果您目前使用的是 v9.6.0,强烈建议您升级至 v9.6.1。

新增特性

序号
新增特性
特性描述
相关文档
1 @身份组 支持在圈组发送消息时@指定身份组 圈组消息收发
2 身份组自定义权限 支持通过服务端 API 为身份组添加自定义权限项,帮助开发者快速实现符合自身业务需求的权限管控能力 自定义权限
3 高级群禁言模式 新增高级群禁言模式,可以选择是否禁言群主和管理员 群组全员禁言

API 变更

API
API 说明
变更说明
sendMessage:toSession:error: 在圈组的频道中发送消息 NIMQChatMessage新增参数mentionedRoleidList,可指定消息发出时需要@的身份组
sendMessage:toSession:completion: 在圈组的频道中发送消息(异步) NIMQChatMessage新增参数mentionedRoleidList,可指定消息发出时需要@的身份组
updateServerRole:completion: 修改服务器身份组
  • 可配置的权限项新增“@身份组”(NIMQChatPermissionTypeMentionedRole)。拥有该权限的成员可在圈组发送消息时@指定身份组(最多10个)
  • 身份组权限项在NIMQChatPermissionStatusInfo中定义,新增自定义权限项customType(int 类型,value 大于或等于 10000)。NIMQChatPermissionStatusInfo兼容原先的NIMQChatPermissionType ,但后者即将废弃,建议将其替换为NIMQChatPermissionStatusInfo
updateChannelRole:completion: 修改频道身份组
  • 可配置的权限项新增“@身份组”(NIMQChatPermissionTypeMentionedRole)。拥有该权限的成员可在圈组发送消息时@指定身份组(最多10个)
  • 身份组权限项在NIMQChatPermissionStatusInfo中定义,新增自定义权限项customType(int 类型,value 大于或等于 10000)。NIMQChatPermissionStatusInfo兼容原先的NIMQChatPermissionType ,但后者即将废弃,建议将其替换为NIMQChatPermissionStatusInfo
updateChannelCategoryRole:completion: 修改频道分组身份组
  • 可配置的权限项新增“@身份组”(NIMQChatPermissionTypeMentionedRole)。拥有该权限的成员可在圈组发送消息时@指定身份组(最多10个)
  • 身份组权限项在NIMQChatPermissionStatusInfo中定义,新增自定义权限项customType(int 类型,value 大于或等于 10000)。NIMQChatPermissionStatusInfo兼容原先的NIMQChatPermissionType ,但后者即将废弃,建议将其替换为NIMQChatPermissionStatusInfo
updateChannelCategoryMemberRole:completion: 修改频道分组用户定制权限
  • 可配置的权限项新增“@身份组”(NIMQChatPermissionTypeMentionedRole)。拥有该权限的成员可在圈组发送消息时@指定身份组(最多10个)
  • 身份组权限项在NIMQChatPermissionStatusInfo中定义,新增自定义权限项customType(int 类型,value 大于或等于 10000)。NIMQChatPermissionStatusInfo兼容原先的NIMQChatPermissionType ,但后者即将废弃,建议将其替换为NIMQChatPermissionStatusInfo
updateMemberRole:completion: 修改(频道下的)用户定制权限
  • 可配置的权限项新增“@身份组”(NIMQChatPermissionTypeMentionedRole)。拥有该权限的成员可在圈组发送消息时@指定身份组(最多10个)
  • 身份组权限项在NIMQChatPermissionStatusInfo中定义,新增自定义权限项customType(int 类型,value 大于或等于 10000)。NIMQChatPermissionStatusInfo兼容原先的NIMQChatPermissionType ,但后者即将废弃,建议将其替换为NIMQChatPermissionStatusInfo
checkPermissions:completion: 查询自己是否拥有某些权限 新增支持查询自定义权限。如果已通过服务端 API 创建自定义权限,则NIMQChatPermissionStatusInfo权限列表新增自定义权限项customType(int 类型,value 大于或等于 10000)。NIMQChatPermissionStatusInfo兼容原先的NIMQChatPermissionType ,但后者即将废弃,建议将其替换为NIMQChatPermissionStatusInfo
checkPermission:completion: 查询自己是否拥有某个权限 新增支持查询自定义权限。如果已通过服务端 API 创建自定义权限,则NIMQChatPermissionStatusInfo权限列表新增自定义权限项customType(int 类型,value 大于或等于 10000)。NIMQChatPermissionStatusInfo兼容原先的NIMQChatPermissionType ,但后者即将废弃,建议将其替换为NIMQChatPermissionStatusInfo
NIMTeamAllMuteMode 高级群禁言模式 新增高级群配置项,具体请参见群组全员禁言

优化改进

  • 减小 SDK 包体积并优化 SDK 集成流程,具体请参见集成
  • 适配 iOS 16 系统。

[9.5.2] - 2022-9-7

修复断网场景下进行数据上报引起的崩溃问题。

[9.5.0] - 2022-8-29

新增特性

  • 圈组模块新增搜索频道成员功能,具体请参见搜索服务器和频道
  • 支持配置消息缩略图尺寸。

优化改进

优化 LBS 策略。

API 变更

V9.5.0 引入了如下新增 API 和 变更 API。

新增 API

API
API 说明
searchServerChannelMember 搜索频道成员

变更 API

API
API 说明
NIMSDKConfig 初始化配置接口新增 thumbnailSize 参数,用于配置缩略图的尺寸。

[9.4.0] - 2022-8-8

新增特性

V9.4.0 的圈组模块新增如下特性:

序号
新增特性
特性描述
相关文档
1 批量查询权限 支持查询自己是否拥有某些权限 查询自己是否拥有某些权限
2 订阅圈组服务器下所有频道及清空服务器未读消息数 支持订阅服务器所有频道的消息,且支持清空服务器未读数 获取服务器未读数
3 搜索消息 支持分页搜索对用户可见的消息。您可通过subType参数进行相应的上层业务开发,实现消息可见性逻辑。支持配置该参数的 API,请参见下文的 API 变更说明 搜索消息

API 变更

V9.4.0 的圈组模块引入了如下新增 API 和 变更 API。

新增 API

API
API 说明
checkPermissions 查询自己是否圈组内的某些(圈组)权限
searchMsgByPage 分页搜索圈组消息
subscribeAllChannel 一次性订阅圈组服务器下最多 200 个频道。单次调用可传入的服务器 ID 数量上限为 10 个。即使多次调用,单个服务器下最多仅能订阅 200 个 频道
markServerRead:completion 清空圈组服务器的未读数

变更 API

API
变更说明
sendMessage 新增subType入参,表示消息子类型。该参数可以用来做特殊渲染、可见性判断、动画效果展示等。例如,您可通过该参数开发相应的上层业务逻辑,实现发送消息时设置消息对其他用户的可见性。返回的消息体NIMQChatMessage新增subType参数
updateMessage 新增subType入参,表示消息子类型。返回的消息体NIMQChatUpdateMessageInfo新增subType参数
onRecvMessages 返回的消息体NIMQChatMessage新增subType参数
getMessageHistory 返回的消息体NIMQChatMessage新增subType参数
onMessageUpdate 返回的消息体NIMQChatUpdateMessageInfo新增subType参数
getMessageHistoryByIds 返回的消息体NIMQChatMessage新增subType参数
getThreadMessages:completion 返回的消息体NIMQChatMessage新增subType参数
getLastMessageOfChannels 返回的消息体QChatMessage新增subType参数

[9.3.1] - 2022-8-3

  • 修复版本升级后偶现本地会话消失的问题。
  • 其他已知问题修复。

[9.3.0] - 2022-7-25

新增特性

序号
新增特性
特性描述
相关文档
1 实时互动频道 圈组新增实时互动频道,用户可在实时互动频道进行音视频通话等音视频相关操作 实时互动频道
2 圈组搜索结果自定义排序 搜索圈组服务器和频道的匹配结果,可按自定义排序 圈组搜索功能
3 查询邀请申请记录 查询服务器的邀请和申请记录,以及用户个人被邀请加入服务器和申请加入服务器的记录 查询申请/邀请的历史记录
4 生成邀请码 拥有“邀请他人加入服务器的权限”的用户可生成邀请码,其他用户可通过邀请码加入服务器 生成邀请码
5 通过邀请码加入服务器 获取到邀请码的用户,可通过邀请码加入服务器 圈组服务器成员管理

优化改进

  • 新增自动取消订阅逻辑:新增 频道对当前用户可见性变更当前用户进入/退出服务器 内置系统通知类型。当收到前者时,如存在相应频道的订阅信息,则自动取消订阅该频道的请求。当收到后者(且为退出服务器)时,如存在相应服务器的订阅信息,则自动取消订阅该服务器以及该服务器下所有已订阅频道的请求。圈组订阅机制相关说明,请参见圈组订阅机制
  • 更新的消息体新增updateContentupdateOperatorInfo字段,分别表示更新的内容和发起更新操作的用户。

API 变更

新增 API

API
API 说明
generateInviteCode:completion: 生成邀请码
joinByInviteCode:completion: 通过邀请码加入服务器
getInviteApplyRecordOfServer:completion: 查询服务器下的申请记录和邀请记录
getInviteApplyRecordOfSelf:completion: 用户查询自己的申请记录和邀请记录
initWithCompletion: 初始化实时互动频道模块
connectChannel:ofServer:completion: 连接实时互动频道
disconnectCompletion: 取消连接实时互动频道
addMediaChannelListener: 添加实时互动频道事件监听
removeMediaChannelListener: 移除实时互动频道监听
unmuteMyAudio: 打开自己的音频
muteMyAudio: 关闭自己的音频
unmuteMyVideo: 打开自己的视频
muteMyVideo: 关闭自己的视频
unmuteAudioWithAccId:completion: 打开成员音频
muteAudioWithAccId:completion: 关闭成员音频
muteVideoWithAccId:completion: 关闭成员视频
unmuteVideoWithAccId:completion: 打开成员视频
startScreenShareWithCompletion: 开启本端屏幕共享
stopScreenShareWithCompletion: 关闭本端屏幕共享
stopMemberScreenShareWithAccId:completion: 关闭成员屏幕共享
subscribeRemoteVideoStreamWithAccId:streamType: 订阅远端视频流
unsubscribeRemoteVideoStreamWithAccId:streamType: 取消订阅远端视频流
subscribeRemoteVideoSubStreamWithAccId: 订阅远端视频辅流
unsubscribeRemoteVideoSubStreamWithAccId: 取消订阅远端视频辅流
setupLocalVideoCanvas: 设置本地视频画布
setupRemoteVideoCanvas:accId: 设置远端视频画布
setupRemoteSubStreamVideoCanvas:accId: 设置远端视频辅流画布
getScreenSharingAccid 获取共享屏幕者ID
enableAudioVolumeIndicationWithEnable:interval: 启用说话者音量提示

变更 API

API
变更说明
inviteServerMembers:completion: 新增ttl入参(可选),表示加入服务器邀请的有效时长
applyServerJoin:completion: 新增ttl入参(可选),表示加入服务器申请的有效时长
acceptServerApply:completion: 新增requestId入参(必传),表示加入服务器申请的标识
rejectServerApply:completion: 新增requestId入参(必传),表示加入服务器申请的标识
acceptServerInvite:completion: 新增requestId入参(必传),表示加入服务器邀请的标识
rejectServerInvite:completion: 新增requestId入参(必传),表示加入服务器邀请的标识
createChannel:completion: 可创建的频道类型枚举NIMQChatChannelType增加枚举值NIMQChatChannelType实时互动,表示 实时互动 频道。
updateServerRole:completion: 可修改的服务器身份组权限NIMQChatPermissionType新增 实时互动 频道相关权限、邀请申请管理权限和邀请申请历史记录查看权限
updateChannelRole:completion: 可修改的频道身份组权限新增实时互动频道相关权限
updateMemberRole:completion: 可修改的个人定制权限新增实时互动频道相关权限
updateChannelCategoryRole:completion: 可修改的个人定制权限新增实时互动频道相关权限
updateChannelCategoryMemberRole:completion: 可修改的频道分组维度的个人定制权限新增实时互动频道相关权限
getServersByPage:completion: 新增入参sort,表示服务器的排序条件
getChannelsByPage:completion: 新增入参sort,表示频道的排序条件

[9.2.8] - 2022-7-1

优化自动重连机制,实现国内外节点平滑迁移。

[9.2.5] - 2022-6-13

该版本在圈组模块增加了圈组系统通知的类型。

相关模块
新增特性
相关文档
圈组系统通知 1. 新增以下 5 种圈组系统通知类型:
  • 加入服务器身份组成员
  • 移除服务器身份组成员
  • 更新服务器身份组权限
  • 更新频道身份组权限
  • 更新频道个人定制权限
具体可查看 NIMQChatSystemNotificationType

2. 对应新增 5 种圈组系统通知附件协议,具体可查看NIMQChatSystemNotificationAttachment
系统通知

[9.2.0] - 2022-5-24

该版本在圈组模块增加了频道分组、消息正在输入状态显示和搜索功能等更新。

新增特性

序号
新增特性
特性描述
相关文档
1 频道分组 支持对频道进行分组管理 频道分组
2 频道分组黑白名单 支持为频道分组设置黑白名单成员/身份组,与频道类型(私密/公开)共同判定频道分组是否对用户可见 频道分组黑白名单
3 频道分组身份组 支持在频道分组维度设置身份组和定制权限,增加用户权限控制的层级 频道分组身份组
4 消息正在输入 支持显示频道消息正在输入 消息正在输入
5 圈组搜索功能 支持通过关键字对服务器、频道和服务器成员进行搜索 圈组搜索功能
6 频道分组推送配置 支持在频道分组层级配置推送 圈组推送管理

API 变更

新增 API

API
API 说明
createChannelCategory 创建频道分组
deleteChannelCategory 删除频道分组
updateChannelCategory 修改频道分组信息
getChannelCategories 查询频道分组
getChannelsInCategoryByPage 分页查询频道分组下频道列表
addChannelCategoryRole 创建频道分组身份组
removeChannelCategoryRole 删除频道分组身份组
updateChannelCategoryRole 更新频道分组身份组。设置频道分组身份组的权限,需调用该方法
getChannelCategoryRoles 查询频道分组身份组信息
addChannelCategoryMemberRole 创建频道分组某人的定制权限
removeChannelCategoryMemberRole 删除频道分组某人的定制权限
updateChannelCategoryMemberRole 修改频道分组某人的定制权限。
getChannelCategoryMemberRoles 查询频道分组某人的定制权限
updateChannelCategoryBlackWhiteRole 更新频道分组黑白名单身份组
getChannelCategoryBlackWhiteRolesByPage 分页查询频道分组黑白名单身份组列表
updateChannelCategoryBlackWhiteMembers 更新频道分组黑白名单成员
getChannelCategoryBlackWhiteMembersByPage 分页查询频道分组黑白名单成员列表
getExistingChannelCategoryBlackWhiteRoles 批量查询频道分组黑白名单身份组列表
getExistingChannelCategoryBlackWhiteMembers 批量查询频道分组黑白名单成员列表
onRecvTypingEvent 监听频道消息正在输入事件
sendMessageTypingEvent 发送频道消息正在输入事件
searchServerByPage 分页搜索服务器
searchServerMemberByPage 分页搜索服务器成员
searchChannelByPage 分页搜索频道
updatePushNotificationProfile:channelCategory 更新频道分组层级推送配置
getUserPushNotificationConfigByChannelCategories 获取频道分组层级推送配置

变更 API

API
变更说明
createChannel 新增categoryIdsyncMode参数,调用时传入categoryId可将频道加入某个频道分组;通过设置syncMode,可实现频道数据与频道分组数据的同步。具体同步的数据包括查看模式(私密或公开)、黑白名单和身份组权限。
updateChannel 同上

[9.1.1] - 2022-4-14

圈组相关优化

  • checkPermission 的入参 channelId 调整为可传参数。如果不传则查服务器权限,传则查频道权限。

修复

  • 修复遗留问题。

[9.1.0] - 2022-4-11

更新

修复

  • 修复了终端用户开启消息漫游后在不同手机登录时收到的消息发送结果不一致的问题(一台手机上显示消息发送成功,另一台上显示消息发送失败)。
  • 其他问题修复及优化

[9.0.1] - 2022-3-10

修复

  1. 修复向圈组小服务器内的频道发送消息,接收方没有回调未读数变化的问题。

[9.0.0] - 2022-2-24

新增

  1. 网易云信即时通讯服务全新能力“圈组”发布。相关功能介绍和开发集成请分别参见什么是圈组圈组接入流程

[8.11.0] - 2022-01-10

新增

  1. 支持聊天室空间消息功能。进入聊天室发送聊天室消息支持配置x, y, z坐标
  2. 支持聊天室定向消息功能。发送聊天室消息支持消息接受者列表
  3. 支持聊天室标签实时更新
  4. 匿名聊天室和独立聊天室支持第三方token鉴权
  5. 支持业务反垃圾。涉及进入聊天室更新我的用户资料创建群更新群信息更新超大群信息更新聊天室信息更新我的聊天室资料

[8.10.1] - 2021-12-31

新增

  1. 支持AWS S3存储

[8.9.0] - 2021-12-03

新增

  1. 最大支持好友数至1万

[8.8.0] - 2021-11-04

新增

  1. 支持批量添加聊天室队列元素(由服务端发起)
  2. 增加全文云端消息检索(按消息时间排序)接口

[8.7.2] - 2021-09-28

### 新增
  1. 新增获取指定会话未读消息列表接口

变更

  1. 优化创建会话逻辑

[8.7.0] - 2021-08-25

新增

  1. 支持聊天室撤回消息(服务端接口)
  2. 聊天室加入或者更新队列元素时,支持配置队列元素所属账号
  3. 支持配置聊天室接收消息通知的时间间隔
  4. 消息体新增易盾反垃圾扩展字段和结果字段
  5. 支持异步获取指定会话某消息之前的若干条消息

[8.6.2] - 2021-08-06

新增

  1. 支持数据库备份功能,配置开关为NIMSDKConfig#sessionDatabaseBackupEnabled

[8.5.0] - 2021-06-22

新增

  1. 支持云端历史消息全文检索
  2. 查询指定群消息的已读回执,支持指定群成员列表

变更

  1. 支持撤回自己给自己发送的消息

[8.4.4] - 2021-05-31

优化

  1. 提升高可用服务稳定性

[8.4.0] - 2021-04-29

新增

  1. 创建会话支持配置是否通过消息数据库设置最后一条消息
  2. 支持从本地数据库查询群已读回执内容
  3. 删除本地会话支持配置是否视为已读
  4. 聊天室设置标签标志加入聊天室及按标签发送消息、查询成员详情及总数、禁言能力
  5. 登录抄送新增SDK外部版本号
  6. 上传nos的token过期时,可以自动更新token

[8.3.1] - 2021-03-22

优化

  1. 提高SDK稳定性
  2. 优化缺省lbs生成规则

修复

  1. SDK初始化对httpdns访问过于频繁的问题

[8.3.0] - 2021-03-03

新增

修正

  • IM触发访问局域网权限弹窗问题优化

[8.2.5] - 2021-02-04

优化

  • 完善域名高可用策略,提升服务稳定性

[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

新增

优化

  • 远程拉取的消息如果本地数据库存在允许撤回
  • 修复大文件上传失败的问题
  • 修复新旧版本覆盖安装时出现的数据库错误

[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

新增

优化

  • 修复更新自己的群成员信息出现的异常

[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中增加如下回调。
objc/**
 *  被踢(服务器/其他端)回调
*
 *  @param result        被踢原因
 */
- (void)onKickout:(NIMLoginKickoutResult *)result;

[7.6.0] - 2020-05-13

新增

变更

  • 未接通的音视频通话话单通知存离线,漫游和云端历史
  • 新增主动停止播放音频回调,与原先的播放完成回调区分。

优化

[7.4.2] - 2020-3-20

新增

  • 新增漫游未完整会话相关API接口、回调
objc/**
 *  会话管理器回调
 */
@protocol NIMConversationManagerDelegate <NSObject>

@optional
/**
 *  未漫游完整会话列表回调
 *  @param infos 未漫游完整的会话信息
 */
- (void)onRecvIncompleteSessionInfos:(nullable NSArray<NIMIncompleteSessionInfo *> *)infos;
@end

接口原型

objc/**
 *  会话管理器
 */
@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字段
objcNSDictionary *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', 实现后面推送内容覆盖
objc+ (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

新增

  • 服务端消息关键字检索
objc/**
 *  会话管理器
 */
@protocol NIMConversationManager <NSObject>
	/**
	 *  根据关键字从服务器上检索消息
	 *
	 *  @param session 消息所属的会话
	 *  @param option  检索选项
	 *  @param result  读取的消息列表结果
	 *  @discussion    检索消息内容,大小写不敏感;此接口不支持查询聊天室消息,聊天室请参考 NIMChatroomManagerProtocol 中的消息接口。
	 *
	 */
	- (void)retrieveServerMessages:(NIMSession *)session
	                        option:(NIMMessageServerRetrieveOption *)option
	                        result:(nullable NIMRetrieveServerMessagesBlock)result;
@end
  • 联系人搜索
objc@protocol NIMUserManagerProtocol <NSObject>
/**
*  查找成员
*
*  @param option      查询条件
*  @param completion  完成回调
*/
- (void)searchUserWithOption:(NIMUserSearchOption *)option
                  completion:(nullable NIMUserInfoBlock)completion;
  • 超大群增加移交群主、增加群管理员、移除群管理员
  • 超大群增加群禁言、群成员禁言
  • 超大群资料修改细化群名称修改,群头像修改,群组验证方式修改,群组被邀请人验证方式修改,群介绍修改,群公告修改,群自定义信息修改几个接口
  • 超大群增加同意邀请入群和拒绝邀请入群
  • 超大群增加增加申请入群,批准入群和拒绝入群申请
  • 超大群增加修改群员昵称

变更

  • 多端登录增加具体上下线类型
  • 云端历史消息本地入库
  • 增加P2P与群聊单向撤回

[7.0.3] - 2019-12-4

新增

  • 消息过滤配置接口
objc@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

  • 获取服务端会话列表
objc@protocol NIMConversationManager <NSObject>
/**
*  从服务端分页获取历史会话列表
*
*  @param option 分页查询选项,可为空,空时默认全量获取
*
*  @param completion 完成回调
*/
- (void)fetchServerSessions:(nullable NIMFetchServerSessionOption *)option
                 completion:(nullable NIMFetchRecentSessionsHistoryBlock)completion;
@end

  • 获取服务端会话信息
objc@protocol NIMConversationManager <NSObject>
/**
 *  从服务端获取会话信息
 *
 *  @param session 目标会话
 *
 *  @param completion 完成回调
 */
- (void)fetchServerSessionBySession:(NIMSession *)session
                         completion:(nullable NIMFetchRecentSessionHistoryBlock)completion;
@end

  • 更新服务端会话扩展
objc@protocol NIMConversationManager <NSObject>
/**
*  更新服务端获取会话扩展信息
*
*  @param ext        扩展信息
*
*  @param session    目标最近会话
*
*  @param completion 完成回调
*/
- (void)updateServerSessionExt:(NSString *)ext
                       session:(NIMSession *)session
                    completion:(nullable NIMRemoteRecentSessionBlock)completion;
@end

  • 删除服务端会话
objc@protocol NIMConversationManager <NSObject>
/**
*  删除服务端会话
*
*  @param sessions 目标会话
*
*  @param completion 完成回调
*/
- (void)deleteServerSessions:(NSArray<NIMSession *> *)sessions
                  completion:(nullable NIMRemoteRecentSessionBlock)completion;
@end

  • 自定义推送文档配置
objc@interface NIMSDK : NSObject
/**
 *  更新APNS Token
 *
 *  @param token APNS Token
 *  @param key 自定义本端推送内容, 设置key可对应业务服务器自定义推送文案; 传@"" 清空配置, nil 则不更改
 */
- (void)updateApnsToken:(NSData *)token
       customContentKey:(nullable NSString *)key;
 @end
 
  • 本地数据库异常上抛
objc/**
 *  数据库异常信息
 */
@interface NIMDatabaseException : NSObject
/**
 *  注册数据库异常处理对象
 *  @param handler 用户自定义处理对象
 */
+ (void)registerExceptionHandler:(id<NIMDatabaseHandleExceptionProtocol>)handler;

@end

优化

  • 暴露消息的服务端id
objc@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个会话)
objc@protocol NIMConversationManager <NSObject>
/**
 *  获取所有最近100条会话
 *  @return 最近会话列表
 *  @discussion 用该接口在SDK启动时快速先获取
 */
- (nullable NSArray<NIMRecentSession *> *)mostRecentSessions;
@end

  • 点对点音视频通话记录接口
objc@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

新增

  • 增加超大群群通知状态接口
objc@protocol NIMSuperTeamManager
/**
 *  修改群通知状态
 *
 *  @param state        群通知状态
 *  @param teamId       群组ID
 *  @param completion   完成后的回调
 */
- (void)updateNotifyState:(NIMTeamNotifyState)state
                   inTeam:(NSString *)teamId
               completion:(nullable NIMSuperTeamHandler)completion;
@end
  • 增加超大群群通知状态查询接口
objc@protocol NIMSuperTeamManager
/**
 *  群通知状态
 *
 *  @param teamId 群Id
 *
 *  @return 群通知状态
 */
- (NIMTeamNotifyState)notifyStateForNewMsg:(NSString *)teamId;
@end
  • 增加所有最近会话接口(临时生成的会话用于过滤最后一条消息)
objc/**
 *  获取所有最近会话
 *  @return 最近会话列表
 *  @discussion SDK 以 map 的形式保存 sessions,调用这个方法时将进行排序,数据量较大 (上万) 时会比较耗时。
 *  通过该接口获取的最近会话列表与allRecentSessions接口不同,是基于allRecentSessions接口筛选类型之后重新生成的新对象
 *  需要用户自行在外部管理,所有回调不回回调该接口查询的任何会话
 */
- (nullable NSArray<NIMRecentSession *> *)allRecentSessionsWithOption:(NIMRecentSessionOption *)option;
  • 超大群新增管理员角色,添加和移除管理员需要调用服务端API

  • 超大群增加群组静音、个人禁言

  • SDK配置项新增是否允许重置AVAudioSession

objc@interface NIMSDKConfig : NSObject

/**
 *  是否允许重置AVAudioSession 默认 YES,允许重置
 *  @discussion 默认在播放、Seek等操作下会内部重置AVAudioSession,设置为NO后,将不再重置
 */
@property (nonatomic, assign) BOOL audioSessionResetEnabled;

@end

变更

  • 客户端反垃圾针对关键字特殊字符优化:增加特殊字符转义
  • 聊天室批量更新通知(317类型)内容解析异常问题修复
  • 点对点音、视频通话未读数逻辑优化

[6.6.6] - 2019-07-19

新增

  • 增加删除时间范围内的本地消息接口
objc@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

新增

  • 群成员邀请人查询
objc
@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

新增

  • 清空点对点历史消息
objc@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

新增

  • 使用短链换长链接口
objc
@interface NIMResourceManager : NSObject
/**
 *  使用短链换源链
 *
 *  @param sho实时互动ode    短链
 *  @param completion   完成回调
 *  @discussion 当用户后台配置了NOS文件安全,文件上传的URL为短链,无法直接下载,
 *  可通过该接口换取源链
 */
- (void)fetchNOSURLWithURL:(NSString *)sho实时互动ode
              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;

新增

  • 创建高级群时可以设置自定义群人数上限
objc
@interface NIMCreateTeamOption : NSObject

/**
*  设置群最大人数上限
*  @discussion 默认为0,表示使用默认人数上限
*/
@property (nonatomic,assign)    NSUInteger maxMemberCountLimitation;

@end

变更

  • 撤回消息支持 apns 推送通知
objc
@interface NIMMessage : NSObject

@property (nullable,nonatomic,copy) NSString *apnsContent;

@property (nullable,nonatomic,copy) NSDictionary *apnsPayload;

@end

[5.7.0] - 2018-10-11

新增

  • 登录客户端描述新增自定义信息字段
objc
@interface NIMLoginClient : NSObject

/**
 *  自定义信息,最大32个字符;目前android多端登录,TV端和手表端,可以通过该字段区分
 */
@property (nullable,nonatomic,copy,readonly)     NSString *customTag;

@end

新增

  • NIM SDK 配置项目 新增自定义信息字段
objc
@interface NIMSDKConfig : NSObject

/**
 客户端自定义信息,用于多端登录时同步该信息
 */
@property (nonatomic,copy)  NSString *customTag;

@end


新增

  • 聊天室协议新增批量更新聊天室通用队列元素接口
objc
@protocol NIMChatroomManager <NSObject>
/**
 *  批量更新聊天室通用队列元素,权限由 NIMChatroom 的 queueModificationLevel 决定
 *
 *  @param request    聊天室队列批量请求
 *  @param completion 请求回调
 */
- (void)batchUpdateChatroomQueueObject:(NIMChatroomQueueBatchUpdateRequest *)request
                       completion:(nullable NIMChatroomQueueBatchUpdateHandler)completion;
@end  

优化

  • 文件上传支持快传,即上传重复的大文件上传将不不再需要重复传输,相关接口内部优化

新增

  • 增加某个最近的空白对话
objc
@protocol NIMConversationManager <NSObject>
/**
 *  增加某个最近空白会话
 *
 *  @param recentSession 待增加的最近空白会话
 *  @discussion 异步方法
 */
- (void)addEmptyRecentSessionBySession:(NIMSession *)session;
@end  

变更

  • apns推送文案字数限制在500字

V5.5.0 及其他历史版本,请参考历史版本更新日志

此文档是否对你有帮助?
有帮助
去反馈
  • 近期重要更新
  • [9.16.0] - 2024-04-16
  • 新增特性
  • API 新增
  • API 变更
  • [9.15.2] - 2024-04-11
  • [9.15.1] - 2024-03-06
  • [9.15.0] - 2024-01-31
  • 新增特性
  • API 新增
  • [9.14.2] - 2024-01-15
  • [9.14.1] - 2023-12-06
  • [9.14.0] - 2023-11-10
  • [9.13.1] - 2023-10-25
  • [9.12.1] - 2023-08-01
  • [9.12.0] - 2023-07-07
  • 新增特性
  • 优化
  • 修复
  • API 变更
  • [9.11.2] - 2023-06-20
  • [9.11.0] - 2023-05-31
  • 新增特性
  • 修复
  • API 变更
  • [9.10.1] - 2023-04-20
  • [9.10.0] - 2023-04-11
  • API 变更
  • 优化
  • 问题修复
  • [9.9.2] - 2023-03-09
  • 新增特性
  • API 变更
  • API 新增
  • 数据结构变更
  • 问题修复
  • [9.9.0] - 2023-02-09
  • 新增特性
  • API 新增
  • 优化
  • [9.8.0] - 2022-12-27
  • 新增特性
  • API 变更
  • 新增 API
  • 变更 API
  • 问题修复
  • [9.7.0] - 2022-12-2
  • 新增特性
  • API 新增
  • 修复
  • [9.6.3] - 2022-10-27
  • 新增特性
  • API 新增
  • API 变更
  • [9.6.1] - 2022-10-12
  • [9.6.0] - 2022-9-26
  • 新增特性
  • API 变更
  • 优化改进
  • [9.5.2] - 2022-9-7
  • [9.5.0] - 2022-8-29
  • 新增特性
  • 优化改进
  • API 变更
  • 新增 API
  • 变更 API
  • [9.4.0] - 2022-8-8
  • 新增特性
  • API 变更
  • 新增 API
  • 变更 API
  • [9.3.1] - 2022-8-3
  • [9.3.0] - 2022-7-25
  • 新增特性
  • 优化改进
  • API 变更
  • 新增 API
  • 变更 API
  • [9.2.8] - 2022-7-1
  • [9.2.5] - 2022-6-13
  • [9.2.0] - 2022-5-24
  • 新增特性
  • API 变更
  • 新增 API
  • 变更 API
  • [9.1.1] - 2022-4-14
  • 圈组相关优化
  • 修复
  • [9.1.0] - 2022-4-11
  • 更新
  • 修复
  • [9.0.1] - 2022-3-10
  • 修复
  • [9.0.0] - 2022-2-24
  • 新增
  • [8.11.0] - 2022-01-10
  • 新增
  • [8.10.1] - 2021-12-31
  • 新增
  • [8.9.0] - 2021-12-03
  • 新增
  • [8.8.0] - 2021-11-04
  • 新增
  • [8.7.2] - 2021-09-28
  • 变更
  • [8.7.0] - 2021-08-25
  • 新增
  • [8.6.2] - 2021-08-06
  • 新增
  • [8.5.0] - 2021-06-22
  • 新增
  • 变更
  • [8.4.4] - 2021-05-31
  • 优化
  • [8.4.0] - 2021-04-29
  • 新增
  • [8.3.1] - 2021-03-22
  • 优化
  • 修复
  • [8.3.0] - 2021-03-03
  • 新增
  • 修正
  • [8.2.5] - 2021-02-04
  • 优化
  • [8.2.0] - 2020-12-30
  • 新增
  • 修正
  • [8.1.5] - 2020-12-21
  • 优化
  • [8.1.4] - 2020-12-18
  • 优化
  • [8.1.3] - 2020-12-9
  • 优化
  • [8.1.0] - 2020-11-13
  • 新增
  • [8.0.1] - 2020-10-23
  • 优化
  • [8.0.0] - 2020-09-28
  • 新增
  • 优化
  • [7.9.1] - 2020-09-11
  • 优化
  • [7.8.5] - 2020-08-20
  • 优化
  • [7.8.4] - 2020-08-14
  • 优化
  • [7.8.3] - 2020-07-31
  • 优化
  • [7.8.1] - 2020-07-29
  • 新增
  • 优化
  • [7.8.0] - 2020-07-21
  • 新增
  • 优化
  • [7.7.4] - 2020-06-22
  • 优化
  • [7.7.2] - 2020-06-12
  • 新增
  • 优化
  • [7.7.0] - 2020-05-27
  • 新增
  • [7.6.0] - 2020-05-13
  • 新增
  • 变更
  • [7.4.2] - 2020-3-20
  • 新增
  • [7.4.0] - 2020-3-11
  • 新增
  • 变更
  • 修复
  • [7.2.0] - 2020-1-13
  • 新增
  • 变更
  • [7.0.3] - 2019-12-4
  • 新增
  • 修复
  • [7.0.0] - 2019-11-13
  • 新增
  • 优化
  • 修改
  • [6.10.0] - 2019-10-29
  • 修改
  • [6.9.1] - 2019-09-25
  • 新增
  • [6.9.0] - 2019-09-17
  • 新增
  • 变更
  • [6.7.0] - 2019-08-01
  • 新增
  • 变更
  • [6.6.6] - 2019-07-19
  • 新增
  • [6.5.5] - 2019-06-12
  • 新增
  • [6.5.0] - 2019-05-24
  • 新增
  • 变更
  • [6.3.0] - 2019-04-18
  • 新增
  • 变更
  • [6.2.0] - 2019-03-14
  • 新增
  • 变更
  • [6.1.0] - 2019-01-22
  • 新增
  • 变更
  • [5.9.0] - 2018-11-28
  • 新增
  • 新增
  • 新增
  • 新增
  • 变更
  • [5.7.0] - 2018-10-11
  • 新增
  • 新增
  • 新增
  • 优化
  • 新增
  • 变更