XuqmGroup-H5SDK/README.md

74 行
2.1 KiB
Markdown

# @xuqm/h5-sdk
XuqmGroup 纯 JavaScript/TypeScript H5 SDK,从 Vue3 SDK 提取核心,移除 Vue 依赖。
## 安装
```bash
npm install @xuqm/h5-sdk
```
## 使用
```typescript
import { init, ImManager, login } from '@xuqm/h5-sdk'
// 初始化
init({ appKey: 'your-app-key', baseUrl: 'https://dev.xuqinmin.com' })
// 登录
login('userId', 'userSig')
// 创建 IM 管理器
const im = new ImManager()
// 监听状态变化
im.on('connected', () => console.log('connected'))
im.on('messages', (msgs) => console.log('messages', msgs))
im.on('conversations', (convs) => console.log('conversations', convs))
im.on('error', (err) => console.error('error', err))
// 连接
im.connect()
// 发送消息
im.send({ toId: 'target', chatType: 'SINGLE', msgType: 'TEXT', content: 'Hello' })
// 发送图片(自动上传)
import { sendImageMessage } from '@xuqm/h5-sdk'
await sendImageMessage('target', 'SINGLE', fileInput.files[0], 800, 600)
```
## API
### Core
- `init(config)` — 初始化 SDK
- `login(userId, userSig)` / `logout()` — 登录/登出
- `setToken(token)` / `getToken()` / `getUserId()` / `getConfig()`
- `http.get/post/put/delete` — HTTP 请求工具
- `uploadFile(file)` — 文件上传
### IM Manager
- `connect()` / `disconnect()` — WebSocket 连接管理
- `send(params)` / `revoke(msgId)` / `edit(msgId, content)` — 消息操作
- `messages` / `conversations` / `connected` / `error` — 状态属性
- `on(event, handler)` / `off(event, handler)` — 事件订阅
- `refreshConversations()` — 刷新会话列表
- `loadHistory(toId, query?)` / `loadGroupHistory(groupId, query?)` — 加载历史
- `setConversationRead(targetId, chatType?)` — 标记已读
### IM API (HTTP)
- `sendMessage` / `sendImageMessage` / `sendVideoMessage` / `sendFileMessage` / `sendAudioMessage`
- `fetchHistory` / `fetchGroupHistory` / `revokeMessage` / `editMessage`
- `listConversations` / `markRead` / `setDraft` / `deleteConversation`
- `listFriends` / `addFriend` / `removeFriend` / `sendFriendRequest` ...
- `listGroups` / `getGroupInfo` / `createGroup` ...
## 构建
```bash
npm run build
```
产出 `dist/index.es.js` (ESM) 和 `dist/index.umd.js` (UMD)。