110 行
2.0 KiB
Markdown
110 行
2.0 KiB
Markdown
|
|
# React Native 群聊
|
|||
|
|
|
|||
|
|
基于 `@xuqm/rn-im` 模块实现群组相关功能。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 创建群聊
|
|||
|
|
|
|||
|
|
```ts
|
|||
|
|
import { ImSDK } from '@xuqm/rn-im'
|
|||
|
|
|
|||
|
|
const group = await ImSDK.createGroup('项目讨论', ['user_002', 'user_003'])
|
|||
|
|
// group.id — 群 ID
|
|||
|
|
// group.name — 群名称
|
|||
|
|
// group.creatorId — 创建者
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
> `createGroup` 第二个参数为初始成员列表,创建者自动加入。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 邀请成员
|
|||
|
|
|
|||
|
|
```ts
|
|||
|
|
// 添加单个成员
|
|||
|
|
await ImSDK.addGroupMember('group_xxx', 'user_004')
|
|||
|
|
|
|||
|
|
// 批量添加成员
|
|||
|
|
await ImSDK.batchAddGroupMembers('group_xxx', ['user_004', 'user_005'])
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 发送群消息
|
|||
|
|
|
|||
|
|
```ts
|
|||
|
|
const msg = await ImSDK.sendMessage(
|
|||
|
|
'group_xxx', // toId
|
|||
|
|
'GROUP', // chatType
|
|||
|
|
'TEXT', // msgType
|
|||
|
|
'大家好!' // content
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
发送多媒体群消息:
|
|||
|
|
|
|||
|
|
```ts
|
|||
|
|
// 图片
|
|||
|
|
await ImSDK.sendImageMessage('group_xxx', 'GROUP', '/path/to/image.jpg', 800, 600)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 群成员管理
|
|||
|
|
|
|||
|
|
```ts
|
|||
|
|
// 移除成员
|
|||
|
|
await ImSDK.removeGroupMember('group_xxx', 'user_004')
|
|||
|
|
|
|||
|
|
// 批量移除
|
|||
|
|
await ImSDK.batchRemoveGroupMembers('group_xxx', ['user_004', 'user_005'])
|
|||
|
|
|
|||
|
|
// 退出群聊
|
|||
|
|
await ImSDK.leaveGroup('group_xxx')
|
|||
|
|
|
|||
|
|
// 设置管理员角色(示例)
|
|||
|
|
await ImSDK.setGroupRole('group_xxx', 'user_004', 'ADMIN')
|
|||
|
|
|
|||
|
|
// 禁言成员(示例)
|
|||
|
|
await ImSDK.muteGroupMember('group_xxx', 'user_004', 60)
|
|||
|
|
|
|||
|
|
// 转让群主(示例)
|
|||
|
|
await ImSDK.transferGroupOwner('group_xxx', 'user_002')
|
|||
|
|
|
|||
|
|
// 解散群聊(示例)
|
|||
|
|
await ImSDK.dismissGroup('group_xxx')
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 群信息查询
|
|||
|
|
|
|||
|
|
```ts
|
|||
|
|
// 群列表(仅返回当前用户所在的群)
|
|||
|
|
const groups = await ImSDK.listGroups()
|
|||
|
|
|
|||
|
|
// 群详情
|
|||
|
|
const group = await ImSDK.getGroupInfo('group_xxx')
|
|||
|
|
|
|||
|
|
// 群成员
|
|||
|
|
const members = await ImSDK.listGroupMembers('group_xxx')
|
|||
|
|
|
|||
|
|
// 群历史消息
|
|||
|
|
const history = await ImSDK.fetchGroupHistory('group_xxx', page, size)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 群类型
|
|||
|
|
|
|||
|
|
创建群时可指定 `groupType`:
|
|||
|
|
|
|||
|
|
| 类型 | 说明 |
|
|||
|
|
|------|------|
|
|||
|
|
| `WORK` | 工作群(默认)|
|
|||
|
|
| `PUBLIC` | 公开群 |
|
|||
|
|
| `PRIVATE` | 私有群 |
|
|||
|
|
|
|||
|
|
[→ 返回 RN IM 接入文档](./im)
|