Skip to content

Commit

Permalink
Merge pull request #1135 from haoxiuwen/doc-v2
Browse files Browse the repository at this point in the history
Add Unity 1.3.2/Flutter 4.12.0/RN 1.8.0 Release Notes and Docs
  • Loading branch information
haoxiuwen authored Jan 17, 2025
2 parents 6406422 + 57830c0 commit bd146a7
Show file tree
Hide file tree
Showing 23 changed files with 294 additions and 43 deletions.
11 changes: 11 additions & 0 deletions docs/document/flutter/releasenote.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

<Toc />

## 版本 v4.12.0 2025-1-17

#### 新增特性

用户加入聊天室后会收到如下信息,即调用 `joinChatroom` 方法后的成功回调中会包含如下信息:
1. 聊天室当前人数 `EMChatRoom#memberCount`
2. 聊天室全体禁言状态 `EMChatRoom#isAllMemberMuted`
3. 聊天室创建时间戳 `EMChatRoom#createTimestamp`,新增属性。
4. 当前用户是否在聊天室白名单中 `EMChatRoom#isInWhitelist`。该属性为新增属性,成员收到白名单变更回调时更新。
5. 当前用户被禁言截止时间戳 `EMChatRoom#muteExpireTimestamp`。该属性为新增属性,成员收到禁言变更回调时更新。

## 版本 4.10.0 2024-12-05

- 修复 [fetchSilentModeForConversations](/document/flutter/push/push_notification_mode_dnd.html#获取多个会话的推送通知设置) 方法获取会话的免打扰状态失败的问题。
Expand Down
11 changes: 11 additions & 0 deletions docs/document/react-native/releasenote.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

<Toc />

## 版本 V1.8.0 2025-1-17

### 新增特性

用户加入聊天室后会收到如下信息,即调用 `joinChatRoomEx` 方法后的成功回调中会包含如下信息:
1. 聊天室当前人数 `ChatRoom#memberCount`
2. 聊天室全体禁言状态 `ChatRoom#isAllMemberMuted`
3. 聊天室创建时间戳 `ChatRoom#createTimestamp`,新增属性。
4. 当前用户是否在聊天室白名单中 `ChatRoom#isInWhitelist`。该属性为新增属性,成员收到白名单变更回调时更新。
5. 当前用户被禁言截止时间戳 `ChatRoom#muteExpireTimestamp`。该属性为新增属性,成员收到禁言变更回调时更新。

## 版本 V1.7.0 2024-12-5

### 新增特性
Expand Down
2 changes: 1 addition & 1 deletion docs/document/unity/conversation_delete.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

### 单向删除服务端会话及其历史消息

你可以调用 `DeleteConversationFromServer` 方法删除服务器端会话,并选择是否删除服务端的历史消息。会话和消息删除后,当前用户无法从服务器获取该会话和消息。调用该接口会删除本地会话。该接口不影响其他用户的会话和消息。
你可以调用 `DeleteConversationFromServer` 方法单向删除服务器端和本地会话,并选择是否删除服务端和本地的历史消息。会话和消息删除后,当前用户无法从服务器获取该会话和消息。该接口不影响其他用户的会话和消息。

```csharp
// 如果需要保留服务端的历史消息,`isDeleteServerMessages` 传 `false`。
Expand Down
4 changes: 3 additions & 1 deletion docs/document/unity/error.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ SDKClient.Instance.Login(username, passwd,
| 1 | GENERAL_ERROR | SDK 或请求相关的默认错误,未区分具体错误类型:例如,SDK 内部未正确初始化,或者请求服务器时未识别出具体原因的错误。 |
| 2 | NETWORK_ERROR | 网络错误:无网络服务时会回调此错误,表示 SDK 与服务器的连接已断开。 |
| 3 | DATABASE_ERROR | 数据库操作失败:打开本地数据库失败。 |
| 4 | EXCEED_SERVICE_LIMIT | 超过服务限制:超过当前服务版本的数量限制,例如,创建的用户 ID 数量超过购买服务的限制时提示该错误。 |
| 4 | EXCEED_SERVICE_LIMIT | 超过服务限制:超过当前服务版本的数量限制,例如,创建的用户 ID 数量超过购买服务的限制时提示该错误;设置和获取用户属性的接口,包括[设置当前用户的属性](userprofile.html#设置当前用户的属性)[获取单个或多个用户的用户属性](userprofile.html#获取用户属性),超过调用频率限制时,会上报该错误|
| 8 | APP_ACTIVE_NUMBER_REACH_LIMITATION | 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限。 |
| 100 | INVALID_APP_KEY | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)**应用详情** 页面查看 App Key。 |
| 101 | INVALID_USER_NAME | 用户 ID 不正确:一般情况下,用户 ID 为空时提示该错误,例如,邀请好友时 username 参数为空字符。 |
Expand Down Expand Up @@ -103,13 +103,15 @@ SDKClient.Instance.Login(username, passwd,
| 610 | GROUP_MEMBER_ATTRIBUTES_UPDATE_FAILED | 设置群成员自定义属性失败。 |
| 611 | GROUP_MEMBER_ATTRIBUTES_KEY_REACH_LIMIT | 设置的群成员自定义属性 key 长度(不能超过 16 字节)超限。 |
| 612 | GROUP_MEMBER_ATTRIBUTES_VALUE_REACH_LIMIT | 设置的群成员自定义属性 value 长度(不能超过 512 字节)超限。 |
| 613 | GROUP_USER_IN_BLOCKLIST | 该用户在群组黑名单中。例如,群组黑名单中的用户进行某些操作时,例如,加入群组,会提示该错误。 |
| 700 | CHATROOM_INVALID_ID | 聊天室 ID 无效:调用聊天室相关 API,传入的聊天室 ID 为空时提示该错误。 |
| 701 | CHATROOM_ALREADY_JOINED | 已在该聊天室中:调用加入聊天室的 API 时如果已经在该聊天室中则提示该错误。 |
| 702 | CHATROOM_NOT_JOINED | 未加入该聊天室:用户在未加入的聊天室中发送消息或进行聊天室操作时提示该错误。 |
| 703 | CHATROOM_PERMISSION_DENIED | 无权限的聊天室操作:例如,聊天室普通成员没有权限设置聊天室管理员。 |
| 704 | CHATROOM_MEMBERS_FULL | 聊天室已满:聊天室成员数量已达到创建聊天室时设置的最大人数。 |
| 705 | CHATROOM_NOT_EXIST | 聊天室不存在:尝试对不存在的聊天室进行操作时提示该错误。 |
| 706 | CHATROOM_OWNER_NOT_ALLOW_LEAVE | 聊天室所有者不允许离开聊天室。若初始化时,`Options#IsRoomOwnerLeaveAllowed` 参数设置为 `false`,聊天室所有者调用 `LeaveRoom` 方法离开聊天室时会提示该错误。|
| 707 | CHATROOM_USER_IN_BLOCKLIST | 该用户在聊天室黑名单中。聊天室黑名单中的用户进行某些操作时,例如,加入聊天室,会提示该错误。|
| 900 | USERINFO_USERCOUNT_EXCEED | 获取用户属性的用户个数超过 100。 |
| 901 | USERINFO_DATALENGTH_EXCEED | 设置的用户属性太长。单个用户的所有属性数据不能超过 2 KB,单个 app 所有用户属性数据不能超过 10 GB。 |
| 1000 | CONTACT_ADD_FAILED | 添加联系人失败。 |
Expand Down
3 changes: 2 additions & 1 deletion docs/document/unity/message_delete.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ SDKClient.Instance.ChatManager.DeleteAllMessagesAndConversations(clearServerData
每次最多可删除 50 条消息。多设备情况下,登录该账号的其他设备会收到 `IMultiDeviceDelegate` 中的 `OnRoamDeleteMultiDevicesEvent` 回调,已删除的消息自动从设备本地移除。

:::tip
若使用该功能,需将 SDK 升级至 V1.1.0 或以上版本。
1. 要单向删除服务端单聊和群组聊天的历史消息,需将 SDK 升级至 V1.1.0 或以上版本。
2. 要单向删除服务端聊天室的历史消息,需将 SDK 升级至 1.3.2 或以上版本。
:::

```csharp
Expand Down
15 changes: 7 additions & 8 deletions docs/document/unity/message_pin.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@

消息置顶指将会话中的消息固定在会话顶部,方便会话中的所有用户快速查看重要消息。

目前,**群组和聊天室**聊天支持对消息置顶和取消置顶,单聊消息不支持该功能。

**若使用该功能,你需要将 IM SDK 升级至 V1.3.0 或以上版本并联系环信商务开通。**
- 若使用**群组和聊天室**的消息置顶功能,你需要将 IM SDK 升级至 V1.3.0 版本并联系环信商务开通。
- 若要使用**单聊、群组和聊天室**的消息置顶功能,你需要将 IM SDK 升级至 V1.3.2 版本并联系环信商务开通。

## 前提条件

开始前,请确保满足以下条件:

- 完成 SDK 初始化,并连接到服务器,详见 [快速开始](quickstart.html)
- 了解环信即时通讯 IM API 的使用限制,详见 [使用限制](/product/limitation.html)
- 了解环信即时通讯 IM 的使用限制,详见 [使用限制](/product/limitation.html)

## 技术原理

Expand All @@ -23,9 +22,9 @@

## 置顶消息

你可以调用 `ChatManager#PinMessage` 方法在群组或聊天室聊天中置顶消息,即将 `isPinned` 参数设置为 `true`。消息置顶状态变化后,群组或聊天室会话中的其他成员会收到 `IChatManagerDelegate#OnMessagePinChanged` 事件。多设备登录情况下,更新的置顶状态会同步到其他登录设备,其他设备分别会收到 `IChatManagerDelegate#OnMessagePinChanged` 事件。
你可以调用 `ChatManager#PinMessage` 方法在会话中置顶消息,即将 `isPinned` 参数设置为 `true`。消息置顶状态变化后,会话中的其他用户会收到 `IChatManagerDelegate#OnMessagePinChanged` 事件。多设备登录情况下,更新的置顶状态会同步到其他登录设备,其他设备分别会收到 `IChatManagerDelegate#OnMessagePinChanged` 事件。

在群组和聊天室会话中,支持多个用户置顶同一条消息,最新的消息置顶信息会覆盖较早的信息,即 `PinnedInfo` 的置顶消息的操作者的用户 ID 和置顶时间为最新置顶操作的相关信息。
在会话中,支持多个用户置顶同一条消息,最新的消息置顶信息会覆盖较早的信息,即 `PinnedInfo` 的置顶消息的操作者的用户 ID 和置顶时间为最新置顶操作的相关信息。

若消息在本地存储,而在服务端因过期而删除,则消息置顶失败。

Expand All @@ -45,9 +44,9 @@ SDKClient.Instance.ChatManager.PinMessage(msgId, isPinned, new CallBack(

## 取消置顶消息

你可以调用 `ChatManager#PinMessage` 方法在群组或聊天室聊天中取消置顶消息,即将 `isPinned` 参数设置为 `false`。与置顶消息相同,取消置顶消息后,群组或聊天室会话中的其他成员会收到 `IChatManagerDelegate#OnMessagePinChanged` 事件。多设备登录情况下,更新的置顶状态会同步到其他登录设备,其他设备分别会收到 `IChatManagerDelegate#OnMessagePinChanged` 事件。
你可以调用 `ChatManager#PinMessage` 方法在会话中取消置顶消息,即将 `isPinned` 参数设置为 `false`。与置顶消息相同,取消置顶消息后,会话中的其他用户会收到 `IChatManagerDelegate#OnMessagePinChanged` 事件。多设备登录情况下,更新的置顶状态会同步到其他登录设备,其他设备分别会收到 `IChatManagerDelegate#OnMessagePinChanged` 事件。

群组或聊天室中的所有成员均可取消置顶消息,不论该消息由哪个成员置顶。取消置顶消息后,`Message#PinnedInfo` 获取到的信息中 `PinnedBy` 为空,`PinnedAt``0`,该会话的置顶消息列表中也不再包含该消息。
单聊、群组或聊天室中的所有用户均可取消置顶消息,不论该消息由哪个用户置顶。取消置顶消息后,`Message#PinnedInfo` 获取到的信息中 `PinnedBy` 为空,`PinnedAt``0`,该会话的置顶消息列表中也不再包含该消息。

```csharp
bool isPinned = false;
Expand Down
6 changes: 3 additions & 3 deletions docs/document/unity/message_recall.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ SDKClient.Instance.ChatManager.RecallMessage("Message ID", "Please ignore the me

### 设置消息撤回监听

你可以设置消息撤回监听,通过 `OnMessagesRecalled` 事件监听发送方对已接收的消息的撤回。
你可以设置消息撤回监听,通过 `OnMessagesRecalled` 事件监听发送方对已接收的消息的撤回。该事件的 `RecallMessageInfo` 中的 `RecallBy` 为消息撤回者的用户 ID,`RecallMessageId` 为撤回的消息 ID,`Ext` 为扩展信息,`ConversationId` 为撤回的消息所属的会话 ID。

- 若用户在线接收了消息,消息撤回时,该事件中的 `RecallMessageInfo` 中的 `RecallMessage` 为撤回的消息的内容`RecallMessageId` 属性返回撤回的消息的 ID
- 若消息发送和撤回时接收方离线,该事件中的 `RecallMessageInfo` 中的 `RecallMessage` 为空`RecallMessageId` 属性返回撤回的消息的 ID
- 若用户在线接收了消息,消息撤回时,该事件中的 `RecallMessageInfo` 中的 `RecallMessage` 为撤回的消息的内容。
- 若消息发送和撤回时接收方离线,该事件中的 `RecallMessageInfo` 中的 `RecallMessage` 为空。

```csharp
void OnMessagesRecalled(List<RecallMessageInfo> recallMessagesInfo);
Expand Down
17 changes: 16 additions & 1 deletion docs/document/unity/message_retrieve.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
- `IChatManager.LoadMessage` 根据消息 ID 获取消息。
- `Conversation.LoadMessagesWithMsgType` 获取本地单个会话中特定类型的消息。
- `Conversation.LoadMessagesWithTime` 获取本地单个会话中一定时间段内的消息。
- `Conversion#MessagesCount` 获取 SDK 本地数据库中会话某个时间段内的全部消息数。

## 前提条件

Expand All @@ -43,7 +44,8 @@
:::tip
1. 若使用该 API,需将 SDK 升级至 V1.2.0 或以上版本。
2. **默认可获取单聊和群组聊天的历史消息。若要获取聊天室的历史消息,需升级至 1.3.0 版本,并联系环信商务。**
3. 历史消息在服务器上的存储时间与产品的套餐包相关,详见[产品套餐包详情](/product/pricing.html#套餐包功能详情)
3. 拉取服务器漫游消息时会读取服务端的消息已读和送达状态。该功能只适用于单聊消息,默认关闭,如果需要,请联系环信商务开通。
4. 历史消息在服务器上的存储时间与产品的套餐包相关,详见[产品套餐包详情](/product/pricing.html#套餐包功能详情)
:::

```csharp
Expand Down Expand Up @@ -167,3 +169,16 @@ conv.LoadMessagesWithTime(startTime: startTime, endTime: endTime, count: 50, new
}
));
```

### 获取会话在一定时间内的消息数

你可以调用 `GetMessageCount` 方法从 SDK 本地数据库中获取会话在某个时间段内的全部消息数。

```csharp
SDKClient.Instance.ChatManager.GetMessageCount(new ValueCallBack<int>(
onSuccess: (count) => {
},
onError: (code, desc) => {
}
));
```
26 changes: 26 additions & 0 deletions docs/document/unity/message_search.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
- `ChatManager#LoadMessagesWithKeyword` 根据关键字搜索会话消息。
- `ChatManager#SearchMsgFromDB(string, long, in, string, MessageSearchDirection, MessageSearchScope, ValueCallBack<List<Message>>)`:根据搜索范围搜索所有会话中的消息。
- `Conversation#LoadMessagesWithScope(string, MessageSearchScope, long, int, string, MessageSearchDirection, ValueCallBack<List<Message>>)`:根据搜索范围搜索当前会话中的消息。
- `Conversation#LoadMessagesWithMsgTypeList` :根据单个或多个消息类型,搜索本地数据库中当前会话的消息。

## 前提条件

Expand Down Expand Up @@ -92,3 +93,28 @@ conv.LoadMessagesWithScope("keywords", MessageSearchScope.CONTENT, -1, 10, "from
}
));
```

### 根据消息类型搜索当前会话中的消息

你可以调用 `Conversation#LoadMessagesWithMsgTypeList` 方法除了设置消息时间戳、消息数量、发送方、搜索方向等条件搜索当前会话中的消息,你还可以设置单个或多个消息类型搜索本地数据库中单个会话的消息。

:::tip
若使用该功能,需将 SDK 升级至 V1.3.2 或以上版本。
:::

```csharp
List<MessageBodyType> tlist = new List<MessageBodyType>();
tlist.Add(MessageBodyType.TXT);
tlist.Add(MessageBodyType.IMAGE);

Conversation conv = SDKClient.Instance.ChatManager.GetConversation(conversationId, conversationType);
conv.LoadMessagesWithMsgTypeList(tlist, sender, timestamp, count, direct, new ValueCallBack<List<Message>>(
onSuccess: (list) => {
foreach (var it in list)
{
}
},
onError: (code, desc) => {
}
));
```
6 changes: 2 additions & 4 deletions docs/document/unity/multi_device.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@ SDKClient.Instance.GetLoggedInDevicesFromServerWithToken(username, token,
- 若指定账号自定义了设备名称,该属性表示自定义设备名称。
- 若未自定义设备的名称,该属性默认为设备型号。


### 设置登录设备的名称

即时通讯 IM 自 1.2.0 版本开始支持自定义设置设备名称,这样在多设备场景下,若有设备被踢下线,你就能知道是被哪个设备挤下线的。
Expand All @@ -144,7 +143,7 @@ SDKClient.Instance.GetLoggedInDevicesFromServerWithToken(username, token,
```csharp
// 设置设备名称并进行初始化
Options options = new Options("YouAppKey");
ooptions.CustomDeviceName = "MyDeviceName";
options.CustomDeviceName = "MyDeviceName";
SDKClient.Instance.InitWithOptions(options);

// 定义监听器
Expand Down Expand Up @@ -184,11 +183,10 @@ SDKClient.Instance.ChatManager.RemoveChatManagerDelegate(adelegate);

```csharp
Options options = new Options("YouAppKey");
ooptions.CustomOSType = 1;
options.CustomOSType = 1;
SDKClient.Instance.InitWithOptions(options);
```


### 强制指定账号从单个设备下线

你可以调用 `KickDevice``KickDeviceWithToken` 方法通过传入用户 ID 和登录密码或用户 token 将指定账号从单个登录设备踢下线。调用这两种方法前,你需要首先通过 `SDKClient#GetLoggedInDevicesFromServer``DeviceInfo#Resource` 方法获取设备 ID。
Expand Down
Loading

0 comments on commit bd146a7

Please sign in to comment.