The group management feature allows creating a group, joining a group, getting the joined groups, leaving a group, or disbanding a group through methods in the TencentImSDKPlugin.v2TIMManager.getGroupManager() core class.
Group Event Listener
In the group management feature as described below, the Chat SDK will automatically trigger the group event notification callback, for example, when someone joins or leaves a group.
Call addGroupListener (Details) to add a group event listener.
To stop receiving group events, call removeGroupListener (Details) to remove the group event listener.
Caution:
You need to set the group event listener in advance to receive group event notifications.
To initialize the group information such as group introduction, group profile photo, and existing group members when creating a group, call the createGroup advanced API (Details), and the groupID will be returned in the callback for successful creation.
Sample code:
// Create a public group and specify group attributes
groupManager.createGroup(
groupType: "Publich",
groupName: "groupName",
notification: "",
introduction: "",
faceUrl: "",
isAllMuted: false,
isSupportTopic: false,
addOpt: GroupAddOptTypeEnum.V2TIM_GROUP_ADD_AUTH,
memberList: [],
);
Joining a Group
The method for joining a group may vary by group type as follows:
Type
Method for Joining a Group
Work group (Work)
By invitation
Public group (Public)
On request from the user and on approval from the group owner or admin
Meeting group (Meeting)
Free to join
Community (Community)
Free to join
Audio-video group (AVChatRoom)
Free to join
The following describes how to join the groups in an easy-to-hard sequence.
Caution:
You need to call addGroupListener to add a group event listener in advance as instructed in Group Event Listener to receive the following group events.
Free to join a group
Meeting groups (Meeting), audio-video groups (AVChatRoom), and communities are mainly used for free interaction scenarios, such as online meeting and live show. The process of joining such groups is the simplest:
1. The user calls joinGroup (Details) to join the group.
2. After the user has successfully joined the group, all the group members (including the user) will receive the onMemberEnter callback (Details).
// Get the information of the user who joined the group
})));
Joining a group by invitation
Work groups (Work) are suitable for communication in work environments. The interaction pattern is designed to disable proactive group joining and only allow users to be invited to join the group by group members.
The steps to join a group are as follows:
1. A group member calls inviteUserToGroup (Details) to invite a user to the group.
2. All the group members (including the inviter) receive the onMemberInvited callback (Details), which can contain some UI tips.
Sample code:
// Invite the `userA` user to join the `groupA` group
// Get the information of the inviter and the invitee
})));
Joining a group on request and on approval
A public group (Public) is similar to the interest group and clan group of QQ. Anyone can join it on request and on approval from the group owner or admin.
The steps to join a group on request and on approval are as follows:
Description of process:
1. The user calls joinGroup (Details) to request to join the group.
2. The group owner or admin receives the onReceiveJoinApplication group join request notification (Details) and calls getGroupApplicationList (Details) to get the group join request list.
3. The group owner or admin traverses the group join request list and calls acceptGroupApplication (Details) to approve a request or refuseGroupApplication (Details) to reject it.
4. After the request to join the group is approved or rejected, the user will receive the onApplicationProcessed callback (Details). Here, if isAgreeJoin is true, the request is approved; otherwise, it is rejected.
5. On approval, all the group members (including the user) will receive the onMemberEnter callback (Details), notifying the group members that someone joined the group.
Sample code:
// ******Group owner******//
// 1. The group owner changes the group join option to approval required.
The group owner or admin can also call the setGroupInfo API (Details) to change the group join option (V2TIMGroupAddOpt) to "no group join" or "no approval required".
V2TIMGroupAddOpt has the following options:
Group Join Option
Description
GroupAddOptTypeEnum.V2TIM_GROUP_ADD_FORBID
No users can join the group.
GroupAddOptTypeEnum.V2TIM_GROUP_ADD_AUTH
Approval from the group owner or admin is required to join the group (default value).
GroupAddOptTypeEnum.V2TIM_GROUP_ADD_ANY
Any user can join the group without approval.
Getting the Joined Groups
Call getJoinedGroupList (Details) to get the list of joined work groups (Work), public groups (Public), meeting groups (Meeting), and communities (Community, which don't support the topic feature). Audio-video groups (AVChatRoom) and communities (Community, which support the topic feature) are not included in this list.
Call quitGroup (Details) to leave a group.
The member who left the group will receive the onQuitFromGroup callback (Details).
Other group members will receive the onMemberLeave callback (Details).
Caution:
The group owner cannot leave a public group (Public), meeting group (Meeting), community, or audio-video group (AVChatRoom) and can only disband it.
Call dismissGroup (Details) to disband a group, and all the group members will receive the onGroupDismissed callback (Details).
If you have allowed automatically disbanding an inactive group on the server, when the group is automatically disbanded by the server, the SDK will receive the onGroupRecycled callback (Details).