React Native IM SDK 更新日志
React-Native IM SDK 更新日志
v5.0.0 Dev 2026-10-14
本次为大版本升级,包含不兼容变更。自本版本起,React Native SDK 版本号与依赖的原生 SDK 版本号保持同步,iOS 和 Android 原生 SDK 均升级至 5.0.0。
本文重点说明功能和行为变化,具体的接口删除、重命名及替代方式请参见 React Native SDK 4.x 到 5.0.0 迁移指南。
重要变更
数据同步与本地数据访问
SDK 新增统一的数据同步机制。应用可配置登录后自动同步的数据类型,包括会话、好友和已加入群组,并通过统一的同步事件监听同步状态。列表数据的获取方式由主动调用历史服务端拉取接口,调整为读取同步后的本地数据。
数据库打开和服务端数据同步分别对应不同阶段,应用可按以下步骤处理:
- 配置同步范围:在初始化前,通过
ChatOptions#dataSyncType配置登录后自动同步的数据类型,包括会话、好友和已加入群组,可通过按位或运算组合。未配置时沿用原生 SDK 的默认设置,建议显式配置。 - 读取本地数据:通过
ChatConnectEventListener#onDatabaseOpened确认当前账号的本地数据库已成功打开(username为当前用户 ID,且errorCode === 0)后,即可读取本地数据,不必等待服务端同步完成,有助于加快冷启动时的首屏展示。 - 监听服务端数据同步:通过
ChatConnectEventListener#onDataSyncStart和ChatConnectEventListener#onDataSyncFinish监听指定类型的数据同步开始和结束。回调中的type表示本次同步的数据类型。 - 读取本次同步后的最新数据:如需展示本次登录后从服务端同步的最新数据,应等待对应类型的
ChatConnectEventListener#onDataSyncFinish回调成功(errorCode === 0)后,再读取本地会话、好友或已加入群组数据并刷新界面。
详见 数据同步文档。
群组配置模型重构
群组配置从单一样式枚举改为多个独立字段,建群后也可以按需更新指定配置。
ChatGroupConfigs用于保存群组配置值,包含isPublic、joinApprovalRequired、allowInvites、maxCount、inviteNeedConfirm和ext等字段。ChatGroupConfigsType用于标记需要更新的配置项,支持按位或组合多个配置项。- 建群和群组配置更新统一使用新的配置模型,分别通过
ChatGroupManager#createGroupEx和ChatGroupManager#updateGroupConfigs设置。
默认建群类型调整为私有群,且不允许普通成员邀请其他用户。升级时请显式配置,避免影响现有业务。
消息已读回执与未读数管理
消息已读回执改为批量处理,单聊和群聊共用一套回执体系;清除会话未读数与发送消息已读回执分别处理。
- 消息已读回执
- 支持批量发送已读回执,单聊和群聊统一处理。
- 是否需要已读回执改为按消息控制,在发送前显示开启,默认不请求回执。
- 单聊和群聊的消息已读回执统一通过
ChatMessageEventListener#onMessageReadReceipts接收。 - 群聊支持批量查询消息已读回执汇总,以及分页获取指定消息的已读成员详情;成员信息包含角色、入群时间等,方便展示成员详情。
- 消息已读状态和群消息已读人数由 SDK 维护,应用不能再直接修改。
详见 消息已读回执文档。
- 会话未读数管理
- 调整本地会话未读消息总数的统计规则,仅统计推送通知方式为“所有消息”(
ChatPushRemindType.ALL)的普通单聊和群聊会话;不统计聊天室、消息话题,以及仅提醒提及消息或不提醒的会话(ChatPushRemindType.MENTION_ONLY或ChatPushRemindType.NONE)。 - 清除指定会话或全部会话的本地未读数后,清理结果会同步至当前账号的其他设备,但不会向消息发送方发送消息已读回执。
- 当其他设备清除会话未读数时,应用可通过多设备通知重新读取本地会话并刷新界面。
详见 会话未读数文档。
会话展示与批量管理
SDK 补充会话展示信息和批量删除会话能力:
- 会话对象新增显示名称和头像信息,方便会话列表展示。
- 支持批量删除本地会话,并可选择是否同时删除会话中的本地消息;不存在的会话 ID 会被忽略。
- 补充 iOS 端当前账号在其他设备上更新群组信息的多设备事件通知,方便应用及时刷新群组展示信息。
详见 会话对象文档、删除会话、群消息已读回执详情 和 多设备登录。
优化
登录、鉴权与连接事件
- 登录和设备管理统一使用 Token 鉴权,不再支持密码鉴权。
- SDK 不再支持自动登录,应用应管理登录凭证,并在启动后主动发起 Token 登录。
- 好友自动同步配置并入统一的数据同步配置。
- 连接中断和账号被服务端强制下线等场景统一通过
onDisconnected通知,应用应根据断开原因区分连接中断和登录状态失效。Token 过期仍通过onTokenDidExpire单独通知。登录状态与连接状态不同,不能仅根据是否连接到服务器判断用户是否已登录。
历史能力与接口整理
- 客户端账号注册、消息举报、聊天室创建和解散等能力改由业务服务器处理。
- 移除公开群列表拉取能力;会话、好友和已加入群组列表统一通过数据同步机制更新后读取本地数据。
- 清理已废弃的消息查询、消息编辑、历史消息获取、群组详情获取及聊天室加入等接口,相关功能统一使用保留的推荐方式。
- 群成员加入和退出通知调整为批量处理,并统一聊天室禁言名单变更的通知形式。
推送配置与设备 Token
- 推送配置调整为初始化配置与运行时设备 Token 绑定相分离,应用负责接入厂商推送服务并获取设备 Token。
- Android 厂商推送的依赖、配置和初始化需在原生工程侧完成;向环信服务器绑定设备 Token 时,需提供对应厂商的推送凭据。
- iOS 的 APNs 和 PushKit 推送证书名称在 SDK 初始化时设置,运行期间不可修改;普通推送和 VoIP 推送使用独立的证书与 Token,分别绑定。
- iOS 端支持单独绑定和解绑 PushKit Token,无需登出即可解除绑定。
详见 上传推送证书 和 绑定推送 Token 文档。
平台与集成
- React Native SDK 5.x 仅支持 React Native 新架构,升级前需确认宿主工程已启用新架构。
- iOS 推荐使用 Swift Package Manager(SPM)集成,CocoaPods 继续支持,具体方式根据宿主工程配置选择。
- 升级后需要重新安装依赖并编译 iOS 和 Android 原生工程,仅更新 JavaScript 包不能完成升级。
详见 集成文档 和 SDK 集成与版本要求。
修复
- 修复 Android 本地关键字搜索未指定发送方时始终返回空结果的问题。
- 修复 iOS 未读消息总数的统计问题,与 Android 的统计范围保持一致。
- 修复部分群管理员变更、群组和聊天室全员禁言、iOS 入群申请被拒绝及消息撤回通知中的信息缺失问题。
- 修复账号被服务端强制断开后,本地登录状态可能未及时清理的问题。
- 修复 Android 切换账号登录时可能复用上一账号数据库缓存的问题。
- 修复 Android 修改消息时可能出现的响应匹配异常,以及部分场景下群成员名片无法清空的问题。
- 修复 Android 关闭附件 MD5 校验后,上传附件仍可能执行预校验的问题。
- 修复 Android 网络传输、任务队列和数据库缓存中的若干并发安全问题。
- 修复 iOS 发送附件消息未设置显示文件名时,附件上传可能受 2 MB 大小限制的问题,SDK 会自动使用本地文件名作为显示名。
相关功能详见 本地消息搜索、会话未读数、消息发送 和 迁移指南。
v1.21.0 2026-09-24
新增特性
- 依赖的原生 SDK 升级:
iOS升级至 4.25.0。Android升级至 4.25.1。
- 默认情况下,本地会话列表不包含聊天室会话。如需包含聊天室会话,需在 SDK 初始化前将
ChatOptions.enableChatroomConversation设置为true。 - 支持 分页获取本地会话列表,并可通过
ChatOptions.autoLoadConversations控制登录成功后是否自动将全部本地会话加载到内存。 - 支持 服务端消息搜索,可根据关键词组合、会话 ID、消息类型、时间范围及消息内容或扩展属性进行筛选。该功能需联系环信商务开通后方可使用,详见 开通说明。消息搜索默认不支持扩展字段
ext,如需支持该字段搜索,请联系环信商务。 - iOS 支持在初始化时 配置 APNs 与 PushKit 推送证书名称,对应属性为
ChatOptions.apnsCertName和ChatOptions.pushKitCertName。 - iOS 支持 绑定和解绑苹果 PushKit token,对应方法为
ChatClient.bindPushKitToken和ChatClient.unbindPushKitToken。其他平台调用这两个方法不会执行任何操作。 - 支持 为消息配置回调路由标识,使消息可按指定路由触发发送前回调和发送后回调。目前,该功能仅面向国内 1 区和国内 2 区开放。
v1.18.0 2026-08-06
新增特性
- 依赖的原生 SDK 升级:
iOS升级至 4.22.0Android升级至 4.22.0
- 支持 语音转文字功能。
- 支持图片消息分层资源管理及相关处理逻辑优化:
- 新增 “大图”资源类型,用于区分原图与压缩后的图片资源。
- 优化 非原图发送场景下的图片处理逻辑。
- 优化 图片 和 视频消息的缩略图及附件路径处理逻辑。
- 支持 群成员名片管理功能。
- 支持好友列表自动同步:
- 新增 好友列表自动同步配置功能。
- 新增 好友列表及好友信息同步状态回调。
- 增强好友对象能力:从 服务器 和 本地 获取好友列表时,支持获取好友的用户属性和好友添加时间。之前仅能获取好友用户 ID 和好友备注。
- 支持 非好友用户的属性变更订阅功能,使用前需要联系环信商务开通。
- 支持 用户信息自动管理功能。 用户信息指用于业务展示的用户相关信息,包括 用户属性、好友备注 和 群成员名片。
v1.15.3 2026-07-07
优化
- 统一可选参数语义:对齐 TypeScript 消息工厂方法与消息体构造函数的可选参数处理,使文件、图片、视频、语音和位置消息与原生 SDK 行为保持一致。
- 修正字段类型:将
ChatPresence.lastTime、ChatPresence.expiryTime、ChatRoom.memberCount和ChatRoom.maxUsers的类型由string调整为number。 - 更新 Android 原生 wrapper:改用 SDK 异步接口,并补充
deleteContact.keepConversation和addMembers.welcome在 Android 平台的参数限制说明。 - 升级 Yarn 版本:由 3.6.1 升级至 4.14.1。
修复
修复原生输入转换问题:解决 Android 和 iOS 平台的可选字段转换异常。现在仅在用户显式提供可选字段时才应用对应值,避免桥接层默认值覆盖用户输入。
v1.15.2 2026-06-02
- 依赖的原生 SDK 升级:
Android升级至 4.19.3
- 修复没有设置缩略图导致发送失败的问题。
v1.15.0 2026-04-22
- 依赖的原生 SDK 升级:
iOS升级至 4.19.1Android升级至 4.19.2
- 支持 接收服务端发送的流式消息。
v1.14.0 2026-02-04
- 依赖的原生 SDK 升级:
iOS升级至 4.18.1Android升级至 4.18.1
- 底层支持安全 DNS 解析 DoH,提高连通性。
- 支持私有部署时设置 IPv6 格式的 REST 地址。
v1.13.0 2026-01-28
新增特性
- 依赖的原生 SDK 升级:
iOS升级至 4.17.1Android升级至 4.17.1
- 长连接支持 WebSocket 协议。
ChatOptions新增 API 支持 WebSocket 私有部署:ChatOptions#webSocketServer:设置 WebSocket 服务器地址。ChatOptions#webSocketPort:设置 WebSocket 服务器端口号。
修复
修复原生平台上的 bug。
v1.12.0 2025-11-19
- 依赖的原生 SDK 升级:
iOS升级至 4.16.2Android升级至 4.16.1
v1.11.5 2025-10-09
适配 Android 15 的 16 KB 页面大小。
v1.11.4 2025-9-15
- 修复文件之间循环引用问题。
v1.11.3 2025-7-15
v1.11.2 2025-6-15
修复 Android 平台搜索历史消息的数据转换问题。
v1.11.1 2025-5-10
修复 iOS 平台 会话类型的数据转换问题。
v1.11.0 2025-4-15
新增特性
- 依赖的原生 SDK 升级:
iOS升级至 4.15.1Android升级至 4.15.2
消息相关
- 更新 编辑消息:作废
modifyMessageBody,新增modifyMsgBody,文本、自定义消息可以编辑消息体和扩展信息,文件、视频、音频、图片、位置、合并转发支持编辑扩展信息。 - 支持 发送 和 接收 GIF 图片消息。
- 支持 消息附件鉴权功能。该功能需要联系商务开通,开通后必须调用 SDK 的 API 才能下载消息附件。
- 支持拉取漫游消息时,只 拉取指定的群成员发送的消息。详见
fetchHistoryMessagesByOptions接口的ChatFetchMessageOptions参数。 - 支持加载本地会话消息时,只加载指定群成员发送的消息。
- 支持 根据关键字从本地数据库中获取会话的消息 ID 列表,SDK 返回会话 ID 及消息 ID 列表。
- 支持 根据消息 ID 列表获取本地消息。
- 更新 根据搜索范围搜索当前会话中的消息 接口
getConvMsgsWithKeyword, 新增senders参数,替换原来的sender参数。 - 撤回消息时,支持群主/聊天室所有者和管理员撤回其他用户发送的消息。
群组相关
- 支持 创建群组时设置群头像。新增创建群组接口
createGroupEx,作废原接口createGroup。 - 支持 修改群组头像。
- 支持 获取群成员列表 时包括成员角色和入群时间。
- 群组成员进出事件支持一次通知多个成员进出群组。调整前,SDK 会为每个加入/退出的成员单独回调一条事件。
- 新增群成员进出事件 onMembersJoined 和 onMembersExited。已废弃原事件
onMemberJoined和onMemberExited,请使用新事件代替。
- 新增群成员进出事件 onMembersJoined 和 onMembersExited。已废弃原事件
优化
修改 Token 即将过期事件 ChatConnectEventListener#onTokenWillExpire 的触发时机。SDK 会在 Token 有效期达到 80% 时(之前版本为 50% )回调即将过期通知。
v1.8.2 2025-3-15
- 修复使用 react-native 0.77、0.78、0.79 和 0.80 版本的应用集成 Chat SDK 无法编译通过的问题。
v1.8.1 2025-2-15
- 使用接口 fetchGroupInfoWithoutMembersFromServer 替换
fetchGroupInfoFromServer。
v1.8.0 2025-1-17
新增特性
用户加入聊天室后会收到如下信息,即调用 joinChatRoomEx 方法后的成功回调中会包含如下信息:
- 聊天室当前人数
ChatRoom#memberCount。 - 聊天室全体禁言状态
ChatRoom#isAllMemberMuted。 - 聊天室创建时间戳
ChatRoom#createTimestamp,新增属性。 - 当前用户是否在聊天室白名单中
ChatRoom#isInWhitelist。该属性为新增属性,成员收到白名单变更回调时更新。 - 当前用户被禁言截止时间戳
ChatRoom#muteExpireTimestamp。该属性为新增属性,成员收到禁言变更回调时更新。
v1.7.0 2024-12-5
新增特性
- 依赖的原生 SDK 升级到版本:
- iOS 升级至 4.11.0
- Android 升级至 4.11.0
- 更新服务器连接状态监听器
ChatConnectEventListener,新增onOfflineMessageSyncStart和onOfflineMessageSyncFinish事件,表示从服务器拉取离线消息的开始和结束。 - 新增
ChatManager#getMessageCount方法,用于获取数据库中的消息总数。
优化
- 更新聊天室监听器
ChatRoomEventListener, 作废onMuteListAdded,替换为onMuteListAddedV2。 - 更新消息监听器
ChatMessageEventListener, 移除作废的接口onMessagesRecalled。
v1.6.1 2024-9-12
修复
- 修复 Android 平台下编译报错找不到
CMakeLists.txt的问题。
v1.6.0 2024-8-30
新增特性
- 依赖的原生 SDK 升级到版本:
- iOS 升级至 4.8.1
- Android 升级至 4.8.2
- 新增
ChatManager.searchMessages方法,支持一次搜索所有会话的多种类型的消息。 - 新增
ChatManager.searchMessagesInConversation方法,支持一次搜索指定会话的多种类型的消息。 - 新增
ChatManager.removeMessagesWithTimestamp方法,支持只删除服务器端的聊天室消息。 - 新增
ChatRoomManager.joinChatRoomEx方法,支持加入聊天室时携带扩展信息、是否退出之前加入的全部聊天室。用户加入聊天室后,聊天室内其他成员收到ChatRoomEventListener.onMemberJoined事件获取到扩展信息。 - 新增
ChatManager.getMessageCountWithTimestamp方法,支持从数据库中获取指定会话指定时间段的消息数量。 - 新增
ChatOptions.loginExtraInfo选项,支持设备登录时允许携带自定义消息,并将其传递给被踢的设备。被踢设备收到ChatConnectEventListener#onUserDidLoginFromOtherDeviceWithInfo事件中会携带新设备的扩展信息。 - 原生平台新增错误码 407。
优化
- 原生平台优化弱网服务器连接成功率。
- 作废
ChatConnectEventListener中的onUserDidLoginFromOtherDevice事件,由 onUserDidLoginFromOtherDeviceWithInfo 替代。 - 作废
fetchHistoryMessages接口,由 fetchHistoryMessagesByOptions 替代。 - 作废
joinChatRoom接口,由 joinChatRoomEx 替代。
修复
原生平台进行了如下修复:
- 修复服务端获取好友列表(包含好友备注)时,在好友列表无变化时,第二次请求获取不到数据的问题。
- 修复特殊情况下附件发送失败,消息仍然成功发送的问题。
- 修复拉取漫游消息时 nextkey 错误的问题。
- 修复拉黑好友时缓存未及时更新的问题。
- 修复退出登录再登录后推送可能不工作的问题。
v1.5.1 2024-7-2
修复
修复原生平台以下问题:
- Android:修复部分场景下,用户升级数据库后,在同一个进程下登录新的用户,构建数据库表失败的问题。
- iOS:从服务端拉取群组时,不再先清除本地群组,而是将拉取的群组与本地对比,将本地现有群组进行更新,将新增部分在本地插入。若要清除本地群组信息,可以调用
IEMGroupManager#cleanAllGroupsFromDB方法。
v1.5.0 2024-6-2
新增特性
- 撤回消息的方法
recallMessage中新增扩展参数,支持消息撤回时携带自定义信息。 - 添加消息撤回事件
onMessagesRecalledInfo,作废原来的事件onMessagesRecalled。
修复
原生平台修复以下问题:
- 服务端获取好友列表(包含好友备注)时,在好友列表无变化时,第二次请求获取不到数据的问题。
- 特殊情况下附件发送失败,消息仍然成功发送的问题。
- 拉取漫游消息时
nextkey错误的问题。
v1.4.0 2024-5-7
新增特性
- 新增
ChatManager#deleteAllMessageAndConversation方法,用于清空当前用户的聊天记录,包括消息和会话,同时可以选择是否清除服务端的聊天记录。 - 新增根据搜索范围搜索消息:根据关键字搜索消息时,可以选择
ChatMessageSearchScope中的搜索范围。ChatMessageSearchScope:包含三个消息搜索范围,即搜索消息内容、只搜索消息扩展信息以及同时搜索消息内容以及扩展信息。ChatManager#getMsgsWithKeyword:根据搜索范围搜索所有会话中的消息。ChatManager#getConvMsgsWithKeyword:根据搜索范围搜索当前会话中的消息。
- 支持会话标记功能。
ChatConversationFetchOptions从服务器获取会话的选项,可以用来回去置顶会话或者是标记后的会话。ChatManager#addRemoteAndLocalConversationsMark:标记会话。ChatManager#deleteRemoteAndLocalConversationsMark:取消标记会话。ChatManager#fetchConversationsByOptions:根据ChatConversationFetchOptions选项从服务器分页查询会话列表。ChatConversation#marks:获取本地单个会话的所有标记。ChatMultiDevicesEvent#CONVERSATION_UPDATE_MARK:多设备场景下的会话标记事件。当前用户在一台登录设备上更新了会话标记,包括添加和移除会话标记,其他登录设备会收到该事件。
- 新增错误码 706,表示聊天室所有者不允许离开聊天室。若初始化时,
ChatOptions#isChatRoomOwnerLeaveAllowed参数设置为false,聊天室所有者调用leaveChatRoom方法离开聊天室时会提示该错误。 - 支持聊天室漫游消息。
- 新增
ChatOptions#useReplacedMessageContents开关。开启后,发送消息时如果被内容审核进行了内容替换,发送方可以收到替换后的内容。 - 新增置顶消息功能。
- 新增
ChatManager#pinMessage方法,用于置顶消息。 - 新增
ChatManager#unpinMessage方法,用于取消置顶消息。 - 新增
ChatManager#fetchPinnedMessages方法,从服务器获取指定会话的置顶消息。 - 新增
ChatConversation#getPinnedMessages方法,返回会话下的所有置顶消息。 - 新增
ChatMessagePinInfo类,包含消息置顶的操作者以及置顶时间。 - 新增
ChatMessage#pinInfo方法,展示消息的置顶详情。 - 新增
ChatMessageEventListener#onMessagePinChanged事件。当用户在群组或聊天室会话进行置顶操作时,群组或聊天室中的其他成员会收到该回调。
- 新增
- 新增
ChatOptions#messagesReceiveCallbackIncludeSend开关。开启后,在ChatMessageEventListener#onMessagesReceived回调里增加发送成功的消息。 - 消息编辑回调
ChatMessageEventListener#onMessageContentChanged中支持返回 通过 RESTful API 编辑的自定义消息。
优化
- 支持使用消息 body 完成单条转发,无需重新上传附件。
- 在部分场景下,降低接收到大量群成员事件通知时获取群组详情的次数。
- 在聊天室成员进出时更新聊天室成员人数,使人数更新更及时准确。
- 优化 token 登录时的错误提示信息,使错误提示更精细。
- 优化将所有会话置为已读的时间。
- 优化 SDK 内部随机取服务器地址的逻辑,提升请求成功率。
- 优化进出聊天室超时时间。
- 优化部分场景下连接失败后重连的逻辑。
- 优化附件类型消息发送时中的附件上传,支持分片上传。
- 统一 Agora Token 和 EaseMob Token 登录方式:
ChatClient#loginWithAgoraToken接口废弃,统一使用ChatClient#login接口。此外,新增 EaseMob Token 即将过期及已过期的回调,即 EaseMob Token 已过期或有效期过半时也返回ChatConnectEventListener#onTokenDidExpire和ChatConnectEventListener#onTokenWillExpire回调。 - 优化发消息时重试的逻辑。
- Android/iOS SDK 移除网络请求时对
NetworkOnMainThreadException异常的捕获。 - 数据库升级逻辑优化。
- 单个日志文件大小由 2 MB 提升到 5 MB。
- iOS 平台中增加了隐私协议
PrivacyInfo.xcprivacy。 - Android 平台适配 Android 14 Beta:适配以 Android 14 为目标平台时动态注册广播接收者必须设置
RECEIVER_EXPORTED或者RECEIVER_NOT_EXPORTED的规定。 - 作废接口说明:
getMessagesWithKeyword:getMsgsWithKeyword替换该接口。getMessages:getMsgs替换该接口。getMessageWithTimestamp:getMsgWithTimestamp替换该接口。getMessagesWithMsgType:getConvMsgsWithMsgType替换该接口。searchMsgFromDB:getMsgsWithMsgType替换该接口。
修复
- 修复编辑消息后,离线用户上线后拉取历史消息,消息体中缺乏
from属性的问题。 - 特殊场景下,SDK 退出后再登录会丢失聊天室监听事件问题。
- 修复网络恢复时重连 2 次的问题。
- 修复未登录时调用
leaveChatroom方法返回的错误提示不准确。 - 部分场景下群成员人数计算重复问题。
- 修复数据上报模块偶现的崩溃问题。
- 修复部分场景下调用
ChatManager#updateMessage方法更新消息时导致的崩溃问题。
v1.3.0 2024-1-4
新增特性
- 依赖的原生 SDK 升级到版本,添加原生 SDK 提供的新功能。
iOS升级至 4.2.0Android升级至 4.2.1
- 新增设置好友备注功能。
- 新增
ChatContactManager.fetchAllContacts和ChatContactManager.fetchContacts方法分别从服务器一次性和分页获取好友列表,每个好友对象包含好友的用户 ID 和好友备注。 - 新增
ChatContactManager.getContact方法从本地获取单个好友的用户 ID 和好友备注。 - 新增
ChatContactManager.getAllContacts方法从本地一次性获取好友列表,每个好友对象包含好友的用户 ID 和好友备注。 - 新增
ChatMessage.isBroadcast属性用于判断通该消息是否为聊天室全局广播消息。可通过调用 REST API 发送聊天室全局广播消息。 - 新增
ChatGroupManager.fetchJoinedGroupCount方法用于从服务器获取当前用户已加入的群组数量。 - 申请入群被拒绝的回调
EMGroupEventHandler#onRequestToJoinDeclinedFromGroup中新增decliner和applicant参数表示申请者和拒绝者的用户 ID。
v1.2.1 2023-8-16
修复
- 移除创建消息对象的参数
secret。该参数由服务器生成,在发送消息成功之后会获取到。
v1.2.0 2023-8-16
新增特性
- React-Native 从 0.66.5 升级到 0.71.11。
- 依赖的原生 SDK(iOS 和 Android)升级到版本 4.1.1。添加原生 SDK 提供的新功能。
- 新增
ChatManager.fetchConversationsFromServerWithCursor方法 从服务器分页获取会话列表。 - 新增置顶服务器会话的功能:
- 新增
ChatManager.pinConversation方法,实现置顶或取消置顶服务器会话; - 新增
ChatManager.fetchPinnedConversationsFromServerWithCursor从服务器分页获取置顶会话列表。
- 新增
- 新增
ChatManager.modifyMessageBody方法,用于修改本地消息或服务器端消息。 - 新增 发送 和 接收合并消息:
- 新增
ChatMessage.createCombineMessage方法构建合并消息。 - 新增
ChatManager.fetchCombineMessageDetail方法获取合并消息的信息。
- 新增
- 新增自定义登录设备的名称和平台的功能。
- 新增
ChatPushManager.selectPushTemplate方法基于自定义推送模板进行离线推送。 - 新增
ChatPushManager.fetchSelectedPushTemplate获取选定的推送模板以进行离线推送。 - 在
ChatClient.getLoggedInDevicesFromServer方法中添加 token 参数可使用用户 token 获取在线设备列表。 - 在
ChatClient.kickDevice和ChatClient.kickAllDevices方法中添加 token 参数可使用用户 token 将指定用户的某个或全部的登录设备踢下线。 - 更新监听器:
ChatEvents.ChatConnectEventListener.onUserDidLoginFromOtherDevice:添加deviceName参数。ChatEvents.ChatConnectEventListener:添加onUserDidRemoveFromServer、onUserDidForbidByServer、onUserDidChangePassword、onUserDidLoginTooManyDevice、onUserKickedByOtherDevice和onUserAuthenticationFailed事件通知。ChatEvents.ChatConnectEventListener.onDisconnected:删除代码参数。ChatEvents.ChatMultiDeviceEventListener:添加onMessageRemoved事件。ChatEvents.ChatMultiDeviceEventListener:添加onConversationEvent事件。ChatEvents.ChatMessageEventListener:添加onMessageContentChanged事件。ChatRoomEventListener.onRemoved:添加reason参数。
- 更新以下数据对象:
ChatConversation:添加isPinned和pinnedTime属性。ChatMessage.ChatMessageType:添加COMBINE类型消息正文。ChatMessage:添加receiverList属性。- 创建发送消息:添加
secret参数。 ChatMessage.ChatMessageBody:添加lastModifyOperatorId、lastModifyTime和modifyCount属性。ChatOptions:添加enableEmptyConversation、customDeviceName和customOSType属性。ChatEvents.ChatMultiDeviceEvent:添加CONVERSATION_PINNED、CONVERSATION_UNPINNED和CONVERSATION_DELETED事件。
- 添加数据对象:
ChatMessage.ChatCombineMessageBody:添加组合消息正文对象。
优化
- 优化断线通知,分离出服务器主动断线的通知,用户可以具体处理服务器主动断线的原因。
- 使用 commitlint 优化 git 提交规范,确保提交的代码符合规范。
- 使用 lefthook 优化 git commit。添加使用 gitleaks 检查敏感信息。
- 在
ChatManager对象中,deleteAllMessages重命名为deleteConversationAllMessages。 - 在
ChatEvents.ChatRoomEventListener对象中,onRemoved重命名为onMemberRemoved。 - 在
ChatEvents.ChatGroupEventListener对象中,onUserRemoved重命名为onMemberRemoved。 - 在
ChatEvents.ChatRoomEventListener对象中,onChatRoomDestroyed重命名为onDestroyed。 - 在
ChatEvents.ChatGroupEventListener对象中,onGroupDestroyed重命名为onDestroyed。 - 弃用
ChatManager.fetchAllConversations,改用ChatManager.fetchConversationsFromServerWithCursor。
修复
修复 Android 平台下由于添加表情响应导致应用程序崩溃的问题。
v1.1.2 2023-6-28
新增特性
- 依赖的原生 SDK 升级:
- iOS 升级至 4.16.2
- Android 升级至 4.16.1
- 新增
ChatClient.version属性用于获取当前 SDK 的版本号。 - 新增
ChatGroupManager.setMemberAttribute方法用于设置单个群组成员的属性。 - 新增
ChatGroupManager.fetchMemberAttributes方法用于从服务器获取单个群成员的所有自定义属性以及根据属性 key 获取多个群成员的自定义属性。 - 添加
ChatManager.fetchHistoryMessagesByOptions根据消息拉取参数配置类(ChatFetchMessageOptions)从服务器分页获取指定会话的历史消息。ChatFetchMessageOptions类中包括起始时间戳、消息类型和消息发送方等参数。 - 新增
ChatManager.deleteMessagesWithTimestamp方法实现删除指定时间段内的本地消息。 - 新增
ChatGroupEventListener.onMemberAttributesChanged事件,在单个群成员的属性发生变更时,群内其他成员会收到该事件。 - 新增
ChatConnectEventListener.onAppActiveNumberReachLimit事件,在应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限时触发该事件。 - 新增日志回调接口
handler。
优化
- 删除敏感信息。
- 优化
ChatManager.fetchHistoryMessages方法,更新接口声明。 - 优化 iOS 文件类型的消息,当发送消息时本地路径带有
file://时发送成功。
修复
- 修复更新 token 方法
renewAgoraToken中的问题。 - 修复 Android 平台发送视频消息失败的问题。
v1.1.1 2023-3-8
修复
修复调用 ChatGroupManager#fetchJoinedGroupsFromServer 方法时获取加入的公开群的扩展属性为空的问题。
v1.1.0 2023-2-24
新增特性
- 依赖的原生平台
iOS和Android的 SDK 升级为 v4.0.0 版本。 - 新增
ChatManager#fetchConversationsFromServerWithPage方法实现从服务器分页获取会话列表。 - 新增
ChatMessage#messagePriority方法实现聊天室消息优先级功能,确保高优先级消息优先处理。
优化
- 移除测试数据的敏感信息。
ChatGroupManager类中的方法inviterUser重命名为inviteUser。ChatMultiDeviceEvent枚举类型GROUP_ADD_USER_WHITE_LIST重命名为GROUP_ADD_USER_ALLOW_LIST。ChatMultiDeviceEvent枚举类型GROUP_REMOVE_USER_WHITE_LIST重命名为GROUP_REMOVE_USER_ALLOW_LIST。
修复
- 修复原生平台部分不安全代码。
- 修复获取会话可能失败的问题。
- 修复回调方法可能多次进入主线程导致死锁的问题。该问题只可能发生在 iOS 平台。
v1.0.11 Dev 2022-12-12
优化
依赖的 iOS 和 Android SDK 升级为 3.9.9 版本。
修复
- 修复极端情况下 SDK 崩溃的问题。
- 修复某些场景下调用
updateMessage方法导致的内存与数据库中的消息不一致问题。 - 适配 Android 12,修复依赖环信即时通讯 IM SDK 的 APK 在 Android 12 版本的部分手机上第一次安装后打开时出现异常弹框的问题。
v1.0.10 Dev 2022-10-13
修复
修复 Android 平台进行 JSON 转换可能出现的超限问题。该问题影响返回数组类型数据的接口,若此类接口返回的数据元素超过 50 个,则可能抛出异常。
v1.0.9 Dev 2022-10-08
新增特性
ChatGroupEventListener 中新增两个事件:
onDetailChanged:群组详情变更事件。onStateChanged:群组禁用状态变更事件。
修复
修复聊天室自定义属性问题。
v1.0.8 Dev 2022-09-30
新增特性
- 新增聊天室自定义属性功能。
- 在
ChatOptions类中新增areaCode参数限制连接边缘节点的范围。 ChatGroupOptions中增加isDisabled属性显示群组禁用状态,需要开发者在服务端设置。该属性在调用ChatGroupManager中的fetchGroupInfoFromServer方法获取群组详情时返回。
修复
- 修复极少数场景下,从服务器获取较大数量的消息时失败的问题。
- 修复数据统计不正确的问题。
- 修复极少数场景下打印日志导致的崩溃。
v1.0.7 2022-09-07
兼容性变更
unSubscribe 方法重命名为 unsubscribe。
新增特性
- 新增
setConversationExtension方法用于设置会话扩展。 - 新增
insertMessage方法插入消息。 - 新增
deleteMessagesBeforeTimestamp方法删除指定时间戳之前的消息。 - 新增
getThreadConversation方法获取或创建消息话题会话。 ChatConversation类中添加isChatThread属性确认会话是否为消息话题会话。- 新增
ChatPushManager类支持推送通知设置。 - 新增
ChatPushConfig类支持 FCM 推送配置。 - 在
ChatOptions类中新增pushConfig方法支持推送初始化设置。 - 在
ChatClient类中新增updatePushConfig方法支持推送配置更新。
优化
- 依赖的原生的 SDK(iOS 和 Android)升级到 V1.0.7。
- 监听方法调整为可选。
- 更新发布脚本。
- 更新 demo。
问题修复
修复相关方法中的 type 字段的 JSON 解析错误。
v1.0.6 2022-7-22
兼容性变更
- 以下方法进行了重命名:
deleteRemoteConversation方法重命名为removeConversationFromServer。loadAllConversations方法重命名为getAllConversations。getConversationsFromServer方法重命名为fetchAllConversations。getUnreadMessageCount方法重命名为getUnreadCount。fetchLatestMessage方法重命名为getLatestMessage。fetchLastReceivedMessage方法重命名为getLatestReceivedMessage。unreadCount方法重命名为getConversationUnreadCount。getMessagesFromTime方法重命名为getMessageWithTimestamp。- 白名单和黑名单相关的方法名进行了重命名:
- 白名单相关的方法名中的
WhiteList修改为AllowList,如getGroupWhiteListFromServer修改为getGroupAllowListFromServer; - 黑名单相关的方法名中的
BlackList修改为BlockList,如getGroupBlackListFromServer修改为getGroupBlockListFromServer。
- 白名单相关的方法名中的
- 删除了以下方法:
getMessageByIdinsertMessageappendMessage
新增特性
消息中新增 isOnline 字段。
优化
- 更新了接口示例应用。
- 依赖的 SDK(Android 和 iOS)升级至 V3.9.4。
- React-Native 升级至 0.66.4 LTS 版本。
- Android 平台无需再执行其他操作。
agora-react-native-chat重命名为react-native-agora-chat。
修复
类型声明切入点不正确。
v1.0.5 2022-6-21
这是 React Native SDK 第一个正式发布的版本,包含以下功能:
- 在单聊、群聊、聊天室和消息话题中发送和接收消息;
- 管理会话和消息;
- 管理群组和聊天室;
- 用户在线状态订阅;
- 消息表情回复;
- 管理消息话题等。
关于详细功能概述请参见: 产品概述.
具体集成请参考以下文档:
