NIM SDK 开发版更新日志
更新时间: 2023/12/06 11:52:43
近期重要更新
- 支持圈组自动订阅功能,具体请参考圈组订阅机制。
- 支持接入第三方机器人,在一对一(P2P)和群组(高级群,Team)场景中与机器人进行互动,具体请参考接入第三方机器人。
- 支持“圈组用户资料复用 IM 用户资料” 功能。
[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: |
动态查询连续完整的历史消息 |
API 变更 API | API 说明 :----|:---- `queryCollect`|入参新增 `allType` 参数,表示查询所有收藏类型,若设为 YES,将忽略已设置的 `type` 属性,返回所有的收藏类型
修复
修复已知问题。
[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: |
修改服务器身份组 |
|
updateChannelRole:completion: |
修改频道身份组 |
|
updateChannelCategoryRole:completion: |
修改频道分组身份组 |
|
updateChannelCategoryMemberRole:completion: |
修改频道分组用户定制权限 |
|
updateMemberRole:completion: |
修改(频道下的)用户定制权限 |
|
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 | 通过邀请码加入服务器 | 获取到邀请码的用户,可通过邀请码加入服务器 | 圈组服务器成员管理 |
优化改进
- 新增自动取消订阅逻辑:新增 频道对当前用户可见性变更 和 当前用户进入/退出服务器 内置系统通知类型。当收到前者时,如存在相应频道的订阅信息,则自动取消订阅该频道的请求。当收到后者(且为退出服务器)时,如存在相应服务器的订阅信息,则自动取消订阅该服务器以及该服务器下所有已订阅频道的请求。圈组订阅机制相关说明,请参见圈组订阅机制。
- 更新的消息体新增
updateContent
和updateOperatorInfo
字段,分别表示更新的内容和发起更新操作的用户。
API 变更
新增 API
变更 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 |
变更说明 |
---|---|
createChannel |
新增categoryId 和syncMode 参数,调用时传入categoryId 可将频道加入某个频道分组;通过设置syncMode ,可实现频道数据与频道分组数据的同步。具体同步的数据包括查看模式(私密或公开)、黑白名单和身份组权限。 |
updateChannel |
同上 |
[9.1.1] - 2022-4-14
圈组相关优化
- 将
checkPermission
的入参channelId
调整为可传参数。如果不传则查服务器权限,传则查频道权限。
修复
- 修复遗留问题。
[9.1.0] - 2022-4-11
更新
- 圈组相关更新:
- 当用户在服务器维度没有“管理角色”权限,但在频道维度有该权限时,可在
getServerRoles
方法的NIMQChatGetServerRolesParam
中传入channelId
参数查询整个服务器的身份组列表,以便对频道进行权限添加。相关详情请参见获取服务器身份组。 - 新增封禁用户功能。
- 新增 Thread 聊天和快捷评论功能。相关方法调用详情请参见消息扩展。
- 新增圈组反垃圾功能。
- 支持通过
NIMQChatMessageAntispamSetting
配置消息内容反垃圾。相关配置详情请参见圈组消息管理。 - 支持传入
antispamBusinessId
参数为服务器、频道和身份组的创建和更新操作配置反垃圾业务 ID。
- 支持通过
- 更新圈组推送逻辑。新的推送逻辑详情请参见圈组推送。相关方法调用请参见圈组推送消息等级类型解释及定义、更新服务器推送消息等级配置和频道推送消息等级配置等。
- 支持圈组消息缓存设置。
- 当用户在服务器维度没有“管理角色”权限,但在频道维度有该权限时,可在
- 其他更新:
- 未读相关操作按会话类型分类能力。 可通过 sessiontype 获取指定会话类型的总未读数、重置未读数。
修复
- 修复了终端用户开启消息漫游后在不同手机登录时收到的消息发送结果不一致的问题(一台手机上显示消息发送成功,另一台上显示消息发送失败)。
- 其他问题修复及优化
[9.0.1] - 2022-3-10
修复
- 修复向圈组小服务器内的频道发送消息,接收方没有回调未读数变化的问题。
[9.0.0] - 2022-2-24
新增
[8.11.0] - 2022-01-10
新增
- 支持聊天室空间消息功能。进入聊天室和发送聊天室消息支持配置x, y, z坐标
- 支持聊天室定向消息功能。发送聊天室消息支持消息接受者列表
- 支持聊天室标签实时更新
- 匿名聊天室和独立聊天室支持第三方token鉴权
- 支持业务反垃圾。涉及进入聊天室、更新我的用户资料、创建群、更新群信息、更新超大群信息、更新聊天室信息和更新我的聊天室资料
[8.10.1] - 2021-12-31
新增
[8.9.0] - 2021-12-03
新增
- 最大支持好友数至1万
[8.8.0] - 2021-11-04
新增
[8.7.2] - 2021-09-28
变更
- 优化创建会话逻辑
[8.7.0] - 2021-08-25
新增
- 支持聊天室撤回消息(服务端接口)
- 聊天室加入或者更新队列元素时,支持配置队列元素所属账号
- 支持配置聊天室接收消息通知的时间间隔
- 消息体新增易盾反垃圾扩展字段和结果字段
- 支持异步获取指定会话某消息之前的若干条消息
[8.6.2] - 2021-08-06
新增
- 支持数据库备份功能,配置开关为NIMSDKConfig#sessionDatabaseBackupEnabled
[8.5.0] - 2021-06-22
新增
变更
[8.4.4] - 2021-05-31
优化
- 提升高可用服务稳定性
[8.4.0] - 2021-04-29
新增
- 创建会话支持配置是否通过消息数据库设置最后一条消息
- 支持从本地数据库查询群已读回执内容
- 删除本地会话支持配置是否视为已读
- 聊天室设置标签标志加入聊天室及按标签发送消息、查询成员详情及总数、禁言能力
- 登录抄送新增SDK外部版本号
- 上传nos的token过期时,可以自动更新token
[8.3.1] - 2021-03-22
优化
- 提高SDK稳定性
- 优化缺省lbs生成规则
修复
- 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
新增
-
消息撤回接口增加附言字段。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 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;
新增
- 创建高级群时可以设置自定义群人数上限
@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字
V5.5.0 及其他历史版本,请参考历史版本更新日志。