- 实现了聊天消息发送功能,支持文本、图片、视频、音频、文件等多种消息类型 - 集成了文件上传下载功能,支持多媒体文件的传输和管理 - 添加了群组管理功能,包括创建群组、成员管理、权限控制等操作 - 实现了好友系统,支持好友添加、删除、分组等功能 - 集成了黑名单管理,提供用户屏蔽和解除屏蔽功能 - 添加了会话管理功能,支持对话列表、未读消息统计等 - 实现了历史消息查询和搜索功能 - 添加了实时连接状态管理和自动重连机制
3.4 KiB
3.4 KiB
微信小程序 SDK 概览
包名:xuqm-group-wechat-mini-program-sdk · 版本:0.1.0
npm 安装
在项目根目录创建 .npmrc:
registry=https://nexus.xuqinmin.com/repository/npm/
然后安装:
npm install xuqm-group-wechat-mini-program-sdk
或在微信开发者工具中:
- 打开「工具」→「构建 npm」
- 在小程序
package.json中添加上述依赖
初始化
import { XuqmMiniProgramSDK } from 'xuqm-group-wechat-mini-program-sdk'
const sdk = new XuqmMiniProgramSDK()
sdk.init({
appKey: 'your_app_key',
debug: true, // 可选
})
IM 接入
登录
// 使用 UserSig 登录
await sdk.login('user_001', 'your_user_sig_jwt')
监听消息
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)
})
发送消息
const msg = await sdk.send({
toId: 'user_002',
chatType: 'SINGLE',
msgType: 'TEXT',
content: 'Hello!',
})
发送文本消息(快捷方法)
await sdk.sendTextMessage('user_002', 'SINGLE', 'Hello!')
历史消息
const history = await sdk.fetchHistory('user_002')
const groupHistory = await sdk.fetchGroupHistory('group_xxx')
会话列表
const conversations = await sdk.listConversations()
await sdk.markRead('user_002')
await sdk.setConversationPinned('user_002', 'SINGLE', true)
await sdk.setConversationMuted('user_002', 'SINGLE', true)
群聊
const groups = await sdk.listGroups()
const group = await sdk.getGroupInfo('group_xxx')
const members = await sdk.listGroupMembers('group_xxx')
好友管理
const friends = await sdk.listFriends()
await sdk.addFriend('user_002')
await sdk.removeFriend('user_002')
离线消息同步
const count = await sdk.offlineMessageCount()
const messages = await sdk.syncOfflineMessages()
Update 接入(小程序自带更新机制)
微信小程序的更新由微信客户端自动管理,开发者可通过微信 API 检查更新:
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 |
撤回 |