|
|
2 dienas atpakaļ | |
|---|---|---|
| components | 2 dienas atpakaļ | |
| composables | 2 nedēļas atpakaļ | |
| document | 4 nedēļas atpakaļ | |
| pages | 2 dienas atpakaļ | |
| scripts | 4 nedēļas atpakaļ | |
| static | 2 nedēļas atpakaļ | |
| store | 2 nedēļas atpakaļ | |
| update_log | 1 nedēļu atpakaļ | |
| utils | 2 dienas atpakaļ | |
| .gitignore | 4 nedēļas atpakaļ | |
| App.vue | 2 dienas atpakaļ | |
| LICENSE | 4 nedēļas atpakaļ | |
| README.md | 4 nedēļas atpakaļ | |
| index.html | 4 nedēļas atpakaļ | |
| main.js | 4 nedēļas atpakaļ | |
| manifest.json | 2 dienas atpakaļ | |
| package-lock.json | 2 nedēļas atpakaļ | |
| package.json | 2 nedēļas atpakaļ | |
| pages.json | 2 dienas atpakaļ | |
| uni.promisify.adaptor.js | 4 nedēļas atpakaļ | |
| uni.scss | 4 nedēļas atpakaļ |
基于 uni-app (Vue 3) 的移动端 IM 客户端,包含登录、会话列表、聊天收发(文字/图片/视频/文件)、通讯录、应用中心(SSO 打开应用)、搜索中心等功能。
web-view 打开应用uni-appVue 3JavaScript (CommonJS + ESM)uni.request / uni.uploadFile / uni.connectSocketsharp(仅用于 SVG 转 PNG 脚本).
├─ App.vue # 应用入口,启动时鉴权并连接 WebSocket
├─ pages.json # 页面路由与 tabBar 配置
├─ manifest.json # uni-app 平台配置(App/小程序)
├─ uni.scss # 全局主题变量
├─ uni.promisify.adaptor.js # uni API Promise 适配
├─ package.json
│
├─ pages/
│ ├─ login/index.vue # 登录页(密码/验证码)
│ ├─ index/index.vue # 消息会话列表页(tab: 消息)
│ ├─ chat/index.vue # 聊天页
│ ├─ contacts/index.vue # 通讯录页(tab: 通讯录)
│ ├─ contact-detail/index.vue # 联系人详情页
│ ├─ app-center/index.vue # 应用中心页(tab: 应用中心)
│ ├─ search-center/index.vue # 全局搜索页
│ ├─ profile/index.vue # 个人信息页
│ └─ webview/index.vue # 通用内嵌网页页
│
├─ components/
│ ├─ UserAvatar.vue # 用户头像(图像/文字渐变占位)
│ ├─ SystemAvatar.vue # 系统/应用头像
│ └─ chat/
│ ├─ PrivateMessageBubble.vue # 私信消息气泡
│ └─ NotificationBubble.vue # 通知消息卡片
│
├─ composables/
│ ├─ useContacts.js # 会话列表数据拉取
│ ├─ useMessages.js # 历史消息、发送、重试、上传发送
│ └─ useWebSocket.js # WS 连接、推送处理、未读更新
│
├─ store/
│ └─ chat.js # 全局聊天状态(contacts/messages/unread)
│
├─ utils/
│ └─ api.js # HTTP API 封装与认证工具
│
├─ scripts/
│ └─ svg-to-png.js # tab SVG 批量转 81x81 PNG
│
├─ static/icons/ # 图标资源(含 tab 图标)
└─ document/
└─ Message_Integration_Guide.md # 消息中心接口与接入说明
https://api.hnyunzhu.com 的网络环境npm install
该仓库主要通过 HBuilderX 运行/打包(
package.json未配置完整的 uni CLI 脚本)。
按 uni-app 常规流程在 HBuilderX 中:
manifest.json 配置 appid)当前在 utils/api.js 中固定为:
BASE_URL = https://api.hnyunzhu.com/api/v1WS_BASE = wss://api.hnyunzhu.com/api/v1/ws/messages(位于 composables/useWebSocket.js)如需切换环境(测试/预发),请统一修改上述常量。
tokencurrent_userpages.json 中 tabBar 使用的是 PNG:
static/icons/tab-message(.png)static/icons/tab-contacts(.png)static/icons/tab-app(.png)若你修改了对应 SVG,可执行脚本重新生成 PNG。
用于把 static/icons 下 tab SVG 统一转成 81x81 PNG:
node scripts/svg-to-png.js
依赖:
sharp(已在 devDependencies 中)App.vue 启动时读取 tokengetCurrentUserInfogetMessagessendMessageuploadFile,后 sendMessagegetLaunchpadAppsssoLoginredirect_url 并跳转到 pages/webview/indexPOST /auth/login/jsonPOST /auth/sms/loginPOST /auth/sms/send-codeGET /users/me(及 fallback 路径)GET /users/searchGET /users/GET /messages/conversationsGET /messages/history/{otherUserId}POST /messages/POST /messages/uploadGET /messages/{messageId}/callback-urlGET /simple/me/launchpad-appsPOST /simple/sso-loginwss://.../ws/messages?token=...详细协议可参考 document/Message_Integration_Guide.md。
unpackage/ 构建产物,协作时建议确认是否纳入版本管理策略package.json 的 scripts 目前仅保留默认 test 占位脚本npm scripts(lint、build、dev)