# @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)。