基于 Electron + React + TypeScript 的桌面端 QQ 风格客户端,用于连接 NapCat(OneBot v11)服务,实现私聊/群聊消息收发、会话管理与托盘通知。
- 支持私聊、群聊消息实时收发。
- 会话列表按最新消息时间排序,并显示未读计数。
- 支持加载本地历史消息(IndexedDB 持久化)。
- 支持引用回复、复制消息、图片预览。
- 支持 Emoji、图片、文件发送。
- 群聊支持
@成员。
- 支持系统通知与托盘未读提醒。
- 会话级通知开关(默认关闭,可在会话右键菜单开启)。
- 托盘可展示未读预览并聚合显示。
- 点击通知或托盘预览可跳转到对应会话(区分群聊/私聊)。
- 主题切换:浅色 / 深色 / 跟随系统。
- 全局字体大小可调。
- 发送快捷键:
Enter或Ctrl + Enter。 - 新消息提示音开关。
- 关闭按钮行为可选:最小化到托盘 / 直接退出。
- Electron 40
- React 19
- TypeScript 5
- Vite 7
- Tailwind CSS 3
- Zustand
- Dexie(IndexedDB)
- Node.js(建议 20+)
- npm(随 Node.js 安装)
- Windows 10/11(打包目标为 Windows)
npm installnpm run dev该命令会并行启动:
- 前端开发服务器(Vite,默认
http://localhost:5173) - Electron 主进程
启动后进入「设置 -> 通用/连接」,配置:
- NapCat WebSocket URL(示例:
ws://127.0.0.1:3000) - Access Token(可选)
保存后点击连接即可。
执行:
npm run build打包产物默认输出到:
release_v2/MyQQ-Setup-<version>.exe(安装包)release_v2/win-unpacked/(免安装目录)
说明:
- 构建流程会先编译主进程 TypeScript,再构建前端并调用 electron-builder。
- 如在 Windows 下遇到权限相关错误,请尝试使用管理员权限终端执行。
| 命令 | 说明 |
|---|---|
npm run dev |
启动完整开发环境(前端 + Electron) |
npm run dev:frontend |
仅启动前端(Vite) |
npm run dev:backend |
等待前端后启动 Electron 主进程 |
npm run build |
打包 Windows 安装包与目录产物 |
npm run preview |
预览前端构建结果 |
src/
main/ # Electron 主进程与 preload
renderer/ # React 渲染进程
src/
components/ # UI 组件
hooks/ # 自定义 Hook(主题、通知)
services/ # OneBot 通信与消息处理
store/ # Zustand 状态管理
utils/ # 工具函数(如 QQ 表情映射)
请检查:
- NapCat 服务是否已启动。
- WebSocket 地址是否正确(协议、IP、端口)。
- 是否需要 Access Token,以及 Token 是否填写正确。
- 本机防火墙是否拦截了对应端口。
请检查:
- 该会话是否已开启通知(会话列表右键)。
- 系统通知权限是否允许该应用。
- 设置中的“新消息提示音”是否已开启。
这是预期行为:当“关闭按钮行为”设置为“最小化到托盘”时,点击关闭只会隐藏到托盘。可在设置中改为“直接退出程序”。
这是对部分消息段(如 mface)的兼容展示兜底,避免出现异常占位符(如 [[动画表情]]、[表情:])。
默认在 release_v2/ 目录下,文件名类似:MyQQ-Setup-1.0.0.exe。
ISC