# 微信小程序 SDK 概览 **包名**:`@xuqm/miniprogram-sdk` · **版本**:0.1.0 --- ## npm 安装 ```bash npm install @xuqm/miniprogram-sdk ``` 或在微信开发者工具中: 1. 打开「工具」→「构建 npm」 2. 在小程序 `package.json` 中添加上述依赖 --- ## 初始化 ```ts import { XuqmMiniProgramSDK } from '@xuqm/miniprogram-sdk' const sdk = new XuqmMiniProgramSDK() sdk.init({ appKey: 'your_app_key', appSecret: 'your_app_secret', debug: true, // 可选 }) ``` --- ## IM 接入 ### 登录 ```ts // 使用 UserSig 登录 await sdk.login('user_001', 'your_user_sig_jwt') // 或使用演示账号快速登录(仅测试) const token = await sdk.loginWithDemo('user_001', '123456') ``` ### 监听消息 ```ts sdk.on('connected', () => { console.log('IM 已连接') }) sdk.on('message', (msg) => { console.log('收到消息:', msg.msgType, msg.content) }) sdk.on('read', (msg) => { console.log('已读回执:', msg.id) }) sdk.on('revoke', (data) => { console.log('消息被撤回:', data.msgId) }) sdk.on('disconnected', (reason) => { console.log('断开连接:', reason) }) sdk.on('error', (error) => { console.error('IM 错误:', error) }) ``` ### 发送消息 ```ts const msg = await sdk.send({ toId: 'user_002', chatType: 'SINGLE', msgType: 'TEXT', content: 'Hello!', }) ``` ### 发送文本消息(快捷方法) ```ts await sdk.sendTextMessage('user_002', 'SINGLE', 'Hello!') ``` ### 历史消息 ```ts const history = await sdk.fetchHistory('user_002') const groupHistory = await sdk.fetchGroupHistory('group_xxx') ``` ### 会话列表 ```ts const conversations = await sdk.listConversations() await sdk.markRead('user_002') await sdk.setConversationPinned('user_002', 'SINGLE', true) await sdk.setConversationMuted('user_002', 'SINGLE', true) ``` ### 群聊 ```ts const groups = await sdk.listGroups() const group = await sdk.getGroupInfo('group_xxx') const members = await sdk.listGroupMembers('group_xxx') ``` ### 好友管理 ```ts const friends = await sdk.listFriends() await sdk.addFriend('user_002') await sdk.removeFriend('user_002') ``` ### 离线消息同步 ```ts const count = await sdk.offlineMessageCount() const messages = await sdk.syncOfflineMessages() ``` --- ## Push 接入(小程序通知) 微信小程序使用**订阅消息**和**服务通知**实现 Push,由服务端调用微信 API 下发。 XuqmGroup 小程序 SDK 本身不直接处理 Push Token(小程序无设备 Token 概念),业务方需要: 1. 用户订阅消息模板 2. 业务服务端调用 XuqmGroup Server SDK 的 `send_push` 接口 3. 或业务服务端直接调用微信服务端 API 下发订阅消息 ```python # Python Server SDK 示例 from xuqm_im_server_sdk import XuqmImServerSdk sdk = XuqmImServerSdk(config) sdk.send_push( user_id="user_001", title="新消息", body="你有一条未读消息", ) ``` --- ## Update 接入(小程序自带更新机制) 微信小程序的更新由微信客户端自动管理,开发者可通过微信 API 检查更新: ```ts const updateManager = wx.getUpdateManager() updateManager.onCheckForUpdate((res) => { console.log('是否有新版本:', res.hasUpdate) }) updateManager.onUpdateReady(() => { wx.showModal({ title: '更新提示', content: '新版本已准备好,是否重启应用?', success: (res) => { if (res.confirm) { updateManager.applyUpdate() } }, }) }) ``` > XuqmGroup 小程序 SDK 不额外提供 Update 模块,直接使用微信小程序原生更新能力即可。 --- ## 消息类型 | MsgType | 说明 | |---------|------| | `TEXT` | 纯文本 | | `IMAGE` | 图片 | | `VIDEO` | 视频 | | `AUDIO` | 语音 | | `FILE` | 文件 | | `LOCATION` | 位置 | | `CUSTOM` | 自定义 | | `NOTIFY` | 系统通知 | | `RICH_TEXT` | 富文本 | | `CALL_AUDIO` | 语音通话信令 | | `CALL_VIDEO` | 视频通话信令 | | `QUOTE` | 引用 | | `MERGE` | 合并转发 | | `FORWARD` | 转发 | | `REVOKED` | 撤回 | [→ Server API 文档 →](/server/api)