Skip to content

Commit

Permalink
Merge pull request #1046 from haoxiuwen/doc-v2
Browse files Browse the repository at this point in the history
modify IM docs
  • Loading branch information
haoxiuwen authored Nov 21, 2024
2 parents dce8bca + 796df00 commit d6dc9ea
Show file tree
Hide file tree
Showing 17 changed files with 293 additions and 217 deletions.
23 changes: 0 additions & 23 deletions docs/document/android/room_manage.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
- 从服务器获取聊天室列表
- 加入聊天室
- 获取聊天室详情
- 退出聊天室
- 解散聊天室
- 监听聊天室事件

Expand Down Expand Up @@ -116,28 +115,6 @@ EMClient.getInstance().chatroomManager().addChatRoomChangeListener(chatRoomChang
EMChatRoom chatRoom = EMClient.getInstance().chatroomManager().fetchChatRoomFromServer(chatRoomId);
```

### 退出聊天室

聊天室所有成员均可以调用 `leaveChatRoom` 方法退出当前聊天室。成员退出聊天室时,其他成员收到 `onMemberExited` 回调。

示例代码如下:

```java
// 异步方法。
EMClient.getInstance().chatroomManager().leaveChatRoom(chatRoomId);
```

退出聊天室时,SDK 默认删除该聊天室所有本地消息,若要保留这些消息,可在 SDK 初始化时将 `com.hyphenate.chat.EMOptions#setDeleteMessagesAsExitChatRoom` 设置为 `false`

示例代码如下:

```java
EMOptions options = new EMOptions();
options.setDeleteMessagesAsExitChatRoom(false);
```

与群主无法退出群组不同,聊天室所有者可以离开聊天室,重新进入聊天室仍是该聊天室的所有者。若 `EMOptions#allowChatroomOwnerLeave` 参数在初始化时设置为 `true` 时,聊天室所有者可以离开聊天室;若该参数设置为 `false`,聊天室所有者调用 `leaveChatRoom` 方法离开聊天室时会提示错误 706 `CHATROOM_OWNER_NOT_ALLOW_LEAVE`

### 解散聊天室

仅聊天室所有者可以调用 `destroyChatRoom` 方法解散聊天室。聊天室解散时,其他成员收到 `onChatRoomDestroyed` 回调并被踢出聊天室。
Expand Down
37 changes: 35 additions & 2 deletions docs/document/android/room_members.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
环信即时通讯 IM SDK 提供 `EMChatRoomManager` 类 和 `EMChatRoom` 类,支持对聊天室成员的管理,包括获取、添加和移出聊天室成员等,主要方法如下:

- 获取聊天室成员列表
- 将成员移出聊天室
- 退出聊天室
- 管理聊天室黑名单
- 管理聊天室白名单
- 管理聊天室禁言列表
Expand Down Expand Up @@ -42,7 +42,31 @@
public EMCursorResult<String> fetchChatRoomMembers(String chatRoomId, String cursor, int pageSize);
```

### 将成员移出聊天室
### 退出聊天室

#### 主动退出

聊天室所有成员均可以调用 `leaveChatRoom` 方法退出当前聊天室。成员退出聊天室时,其他成员收到 `onMemberExited` 回调。

示例代码如下:

```java
// 异步方法。
EMClient.getInstance().chatroomManager().leaveChatRoom(chatRoomId);
```

退出聊天室时,SDK 默认删除该聊天室所有本地消息,若要保留这些消息,可在 SDK 初始化时将 `com.hyphenate.chat.EMOptions#setDeleteMessagesAsExitChatRoom` 设置为 `false`

示例代码如下:

```java
EMOptions options = new EMOptions();
options.setDeleteMessagesAsExitChatRoom(false);
```

与群主无法退出群组不同,聊天室所有者可以离开聊天室,重新进入聊天室仍是该聊天室的所有者。若 `EMOptions#allowChatroomOwnerLeave` 参数在初始化时设置为 `true` 时,聊天室所有者可以离开聊天室;若该参数设置为 `false`,聊天室所有者调用 `leaveChatRoom` 方法离开聊天室时会提示错误 706 `CHATROOM_OWNER_NOT_ALLOW_LEAVE`

#### 被移出

仅聊天室所有者和管理员可调用 `EMChatRoomManager#removeChatRoomMembers` 方法将单个或多个成员移出聊天室。

Expand All @@ -58,6 +82,15 @@ public EMCursorResult<String> fetchChatRoomMembers(String chatRoomId, String cur
EMClient.getInstance().chatroomManager().removeChatRoomMembers(chatRoomId, members);
```

#### 离线后自动退出

由于网络等原因,聊天室中的成员离线超过 2 分钟会自动退出聊天室。若需调整该时间,需联系环信商务。

不过,以下两种情况除外:

- 聊天室白名单中的成员(聊天室所有者和管理员默认加入白名单)。
- [调用 RESTful API 创建聊天室](/document/server-side/chatroom_manage.html#创建聊天室)时拉入的用户从未登录过。

### 管理聊天室黑名单

#### 将成员加入聊天室黑名单
Expand Down
27 changes: 0 additions & 27 deletions docs/document/flutter/room_manage.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
- 从服务器获取聊天室列表
- 加入聊天室
- 获取聊天室详情
- 退出聊天室
- 解散聊天室
- 监听聊天室事件
- 实时更新聊天室成员人数
Expand Down Expand Up @@ -112,32 +111,6 @@ try {
}
```

### 退出聊天室

聊天室所有成员均可以调用 `EMChatRoomEventHandler#leaveChatRoom` 方法退出当前聊天室。成员退出聊天室时,其他成员收到 `onMemberExitedFromChatRoom` 回调。

示例代码如下:

```dart
try {
await EMClient.getInstance.chatRoomManager.leaveChatRoom(roomId);
} on EMError catch (e) {
}
```

退出聊天室时,SDK 默认删除该聊天室的所有本地消息,若要保留这些消息,可在 SDK 初始化时将 `EMOptions#deleteMessagesAsExitChatRoom` 设置为 `false`

示例代码如下:

```dart
EMOptions options = EMOptions(
appKey: APPKEY,
deleteMessagesAsExitChatRoom: false,
);
```

与群主无法退出群组不同,聊天室所有者可以离开聊天室,离开后重新进入仍是该聊天室的所有者。若 `ChatOptions#isChatRoomOwnerLeaveAllowed` 参数在初始化时设置为 `true` 时,聊天室所有者可以离开聊天室;若该参数设置为 `false`,聊天室所有者调用 `leaveChatRoom` 方法离开聊天室时会提示错误 706。

### 解散聊天室

仅聊天室所有者可以调用 `EMChatRoomManager#destroyChatRoom` 方法解散聊天室。聊天室解散时,其他聊天室成员收到 `EMChatRoomEventHandler#onChatRoomDestroyed` 回调并被踢出聊天室。
Expand Down
41 changes: 39 additions & 2 deletions docs/document/flutter/room_members.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

环信即时通讯 IM Flutter SDK 提供 `EMChatRoom``EMRoomManager``EMChatRoomEventHandler` 类,支持对聊天室成员的管理,包括添加和移出聊天室成员等,主要方法如下:

- 将成员移出聊天室
- 获取聊天室成员列表
- 退出聊天室
- 管理聊天室黑名单
- 管理聊天室白名单
- 管理聊天室禁言列表
Expand Down Expand Up @@ -47,7 +47,35 @@ try {
}
```

### 将成员移出聊天室
### 退出聊天室

#### 主动退出

聊天室所有成员均可以调用 `EMChatRoomEventHandler#leaveChatRoom` 方法退出当前聊天室。成员退出聊天室时,其他成员收到 `onMemberExitedFromChatRoom` 回调。

示例代码如下:

```dart
try {
await EMClient.getInstance.chatRoomManager.leaveChatRoom(roomId);
} on EMError catch (e) {
}
```

退出聊天室时,SDK 默认删除该聊天室的所有本地消息,若要保留这些消息,可在 SDK 初始化时将 `EMOptions#deleteMessagesAsExitChatRoom` 设置为 `false`

示例代码如下:

```dart
EMOptions options = EMOptions(
appKey: APPKEY,
deleteMessagesAsExitChatRoom: false,
);
```

与群主无法退出群组不同,聊天室所有者可以离开聊天室,离开后重新进入仍是该聊天室的所有者。若 `ChatOptions#isChatRoomOwnerLeaveAllowed` 参数在初始化时设置为 `true` 时,聊天室所有者可以离开聊天室;若该参数设置为 `false`,聊天室所有者调用 `leaveChatRoom` 方法离开聊天室时会提示错误 706。

#### 被移出

仅聊天室所有者和管理员可调用 `EMChatRoomManager#removeChatRoomMembers` 方法将单个或多个成员移出聊天室。
被移出后,该成员收到 `EMChatRoomEventHandler#onRemovedFromChatRoom` 回调,其他成员收到 `EMChatRoomEventHandler#onMemberExitedFromChatRoom` 回调。
Expand All @@ -66,6 +94,15 @@ try {
}
```

#### 离线后自动退出

由于网络等原因,聊天室中的成员离线超过 2 分钟会自动退出聊天室。若需调整该时间,需联系环信商务。

不过,以下两种情况除外:

- 聊天室白名单中的成员(聊天室所有者和管理员默认加入白名单)。
- [调用 RESTful API 创建聊天室](/document/server-side/chatroom_manage.html#创建聊天室)时拉入的用户从未登录过。

### 管理聊天室黑名单

#### 将成员加入聊天室黑名单
Expand Down
24 changes: 0 additions & 24 deletions docs/document/harmonyos/room_manage.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
- 从服务器获取聊天室列表
- 加入聊天室
- 获取聊天室详情
- 退出聊天室
- 解散聊天室
- 监听聊天室事件

Expand Down Expand Up @@ -71,29 +70,6 @@ ChatClient.getInstance().chatroomManager()?.joinChatroom(chatroomId, leaveOtherR
});
```

### 退出聊天室

聊天室所有成员均可以调用 `leaveChatroom` 方法退出当前聊天室。成员退出聊天室时,其他成员收到 `onMemberExited` 回调。

示例代码如下:

```TypeScript
ChatClient.getInstance().chatroomManager()?.leaveChatroom(chatRoomId).then(()=> {
// success logic
});
```

退出聊天室时,SDK 默认删除该聊天室所有本地消息,若要保留这些消息,可在 SDK 初始化时将 `ChatOptions#setDeleteMessagesOnLeaveChatroom` 设置为 `false`

示例代码如下:

```TypeScript
let options = new ChatOptions();
options.setDeleteMessagesOnLeaveChatroom(false);
```

与群主无法退出群组不同,聊天室所有者可以离开聊天室,重新进入聊天室仍是该聊天室的所有者。若 `ChatOptions#canChatroomOwnerLeave` 参数在初始化时设置为 `true` 时,聊天室所有者可以离开聊天室;若该参数设置为 `false`,聊天室所有者调用 `leaveChatRoom` 方法离开聊天室时会提示错误 706 `ChatError#CHATROOM_OWNER_NOT_ALLOW_LEAVE`

### 监听聊天室事件

`ChatroomListener` 类中提供了聊天室事件的监听接口。你可以通过注册聊天室监听器,获取聊天室事件,并作出相应处理。如不再使用该监听器,需要移除。
Expand Down
38 changes: 36 additions & 2 deletions docs/document/harmonyos/room_members.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
环信即时通讯 IM SDK 提供 `ChatroomManager` 类 和 `ChatRoom` 类,支持对聊天室成员的管理,包括获取、添加和移出聊天室成员等,主要方法如下:

- 获取聊天室成员列表
- 将成员移出聊天室
- 退出聊天室
- 管理聊天室黑名单
- 管理聊天室白名单
- 管理聊天室禁言列表
Expand Down Expand Up @@ -42,7 +42,32 @@ ChatClient.getInstance().chatroomManager()?.fetchChatroomMembers(chatroomId, cur
});
```

### 将成员移出聊天室
### 退出聊天室

#### 主动退出

聊天室所有成员均可以调用 `leaveChatroom` 方法退出当前聊天室。成员退出聊天室时,其他成员收到 `onMemberExited` 回调。

示例代码如下:

```TypeScript
ChatClient.getInstance().chatroomManager()?.leaveChatroom(chatRoomId).then(()=> {
// success logic
});
```

退出聊天室时,SDK 默认删除该聊天室所有本地消息,若要保留这些消息,可在 SDK 初始化时将 `ChatOptions#setDeleteMessagesOnLeaveChatroom` 设置为 `false`

示例代码如下:

```TypeScript
let options = new ChatOptions();
options.setDeleteMessagesOnLeaveChatroom(false);
```

与群主无法退出群组不同,聊天室所有者可以离开聊天室,重新进入聊天室仍是该聊天室的所有者。若 `ChatOptions#canChatroomOwnerLeave` 参数在初始化时设置为 `true` 时,聊天室所有者可以离开聊天室;若该参数设置为 `false`,聊天室所有者调用 `leaveChatRoom` 方法离开聊天室时会提示错误 706 `ChatError#CHATROOM_OWNER_NOT_ALLOW_LEAVE`

#### 被移出

仅聊天室所有者和管理员可调用 `ChatroomManager#removeChatroomMembers` 方法将单个或多个成员移出聊天室。

Expand All @@ -58,6 +83,15 @@ ChatClient.getInstance().chatroomManager()?.removeChatroomMembers(chatroomId, me
});
```

#### 离线后自动退出

由于网络等原因,聊天室中的成员离线超过 2 分钟会自动退出聊天室。若需调整该时间,需联系环信商务。

不过,以下两种情况除外:

- 聊天室白名单中的成员(聊天室所有者和管理员默认加入白名单)。
- [调用 RESTful API 创建聊天室](/document/server-side/chatroom_manage.html#创建聊天室)时拉入的用户从未登录过。

### 管理聊天室黑名单

#### 将成员加入聊天室黑名单
Expand Down
27 changes: 12 additions & 15 deletions docs/document/ios/group_members.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,28 +68,25 @@ do {
} while (result && result.list < pageSize);
```

2. 调用 `joinPublicGroup``requestToJoinPublicGroup` 方法传入群组 ID,申请加入对应群组
2. 调用 `requestToJoinPublicGroup` 方法传入群组 ID,申请加入对应公开群组

- 调用 `joinPublicGroup` 方法加入无需群主或管理员审批的公开群,即 `EMGroupStyle``EMGroupStylePublicOpenJoin`。申请人不会收到任何回调,其他群成员会收到 `EMGroupManagerDelegate#userDidJoinGroup` 回调。

示例代码如下:

```objective-c
// 异步方法
[[EMClient sharedClient].groupManager joinPublicGroup:@"groupId" completion:^(EMGroup *aGroup, EMError *aError) {
}];
```
- 调用 `requestToJoinPublicGroup` 方法加入需要群主或管理员审批的公开群,即 `EMGroupStyle` 为 `EMGroupStylePublicJoinNeedApproval`。示例代码如下:
- 如果公开群无需群主或管理员审批,即 `EMGroupStyle``EMGroupStylePublicOpenJoin`,申请人会直接加入群组,其他群成员会收到 `EMGroupManagerDelegate#userDidJoinGroup` 回调。
- 如果公开群需要群主或管理员审批,即 `EMGroupStyle``EMGroupStylePublicJoinNeedApproval`,申请人不会直接加入群组,群主和群管理员收到 `EMGroupManagerDelegate#joinGroupRequestDidReceive` 回调。待群主或管理员同意入群申请后,申请人会收到joinGroupRequestDidApprove的回调。示例代码如下:

```objective-c
// 异步方法
[[EMClient sharedClient].groupManager requestToJoinPublicGroup:@"groupId" message:nil completion:^(EMGroup *aGroup1, EMError *aError) {
}];
if (aError == nil) {
if (aGroup1.setting.style == EMGroupStylePublicOpenJoin) {
// 已直接加入公开群组
}
if (aGroup1.setting.style == EMGroupStylePublicJoinNeedApproval) {
// 不能直接加入群组,群主和群管理员收到 `EMGroupManagerDelegate#joinGroupRequestDidReceive` 回调。待群主或管理员同意入群申请后,申请人会收到joinGroupRequestDidApprove的回调
}
}
}];
```
群主或群管理员收到 `EMGroupManagerDelegate#joinGroupRequestDidReceive` 回调。

- 若同意加入群组,需要调用 `approveJoinGroupRequest` 方法。
申请人会收到 `EMGroupManagerDelegate#joinGroupRequestDidApprove` 回调,其他群成员会收到 `EMGroupManagerDelegate#userDidJoinGroup` 回调。
Expand Down
27 changes: 0 additions & 27 deletions docs/document/ios/room_manage.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
- 从服务器获取聊天室列表
- 加入聊天室
- 获取聊天室详情
- 退出聊天室
- 解散聊天室
- 监听聊天室事件
- 实时更新聊天室成员人数
Expand Down Expand Up @@ -94,32 +93,6 @@ extension ViewController: EMChatroomManagerDelegate {
EMChatroom *chatroom = [[EMClient sharedClient].roomManager getChatroomSpecificationFromServerWithId:@“chatroomId” completion:nil];
```

### 退出聊天室

聊天室所有成员均可以调用 `leaveChatroom` 方法退出指定聊天室成员退出聊天室时,其他成员收到 `userDidLeaveChatroom` 回调

示例代码如下:

```objectivec
// 异步方法
[[EMClient sharedClient].roomManager leaveChatroom:@"aChatroomId" completion:nil];
```

退出聊天室时,SDK 默认删除该聊天室所有本地消息,若要保留这些消息,可在 SDK 初始化时将 `isDeleteMessagesWhenExitChatRoom` 设置为 `NO`

```objectivec
@property (nonatomic, assign) BOOL isDeleteMessagesWhenExitChatRoom;
```

示例代码如下:

```objectivec
EMOptions *retOpt = [EMOptions optionsWithAppkey:@"appkey"];
retOpt.isDeleteMessagesWhenExitChatRoom = NO;
```

与群主无法退出群组不同,聊天室所有者可以离开聊天室,重新进入聊天室仍是该聊天室的所有者若 `EMOptions#canChatroomOwnerLeave` 参数在初始化时设置为 `YES` 时,聊天室所有者可以离开聊天室;若该参数设置为 `NO`,聊天室所有者调用 `leaveChatroom` 方法离开聊天室时会提示错误 706 `EMErrorChatroomOwnerNotAllowLeave`

### 解散聊天室

仅聊天室所有者可以调用 `destroyChatroom` 方法解散聊天室聊天室解散时,其他成员收到 `didDismissFromChatroom` 回调并被踢出聊天室
Expand Down
Loading

0 comments on commit d6dc9ea

Please sign in to comment.