初始提交:浏览器首页 MyHomePage 全栈项目

# 项目概述
个人浏览器首页导航应用,支持书签分类管理、搜索引擎快捷搜索、
必应每日壁纸轮播、前后端分离部署,适配 1Panel 服务器(Docker 模式)。

# 技术栈
- 前端:Vue 3 + TypeScript + Vite + Pinia + Capacitor(Android 打包)
- 后端:.NET 8 + SqlSugar(多数据库) + SQLite/MySQL + Swashbuckle
- 部署:1Panel 应用商店自定义应用(Docker Compose 模式)

# 项目结构
- backend/    .NET 8 API 后端(8 个 Controller + 15 个 Service)
- frontend/   Vue 3 前端(19 个组件 + 9 个 API 模块 + 5 个 Store)
- docker/     Docker 部署文件(后端镜像 + Nginx 反代)
- docs/       部署手册(1Panel 实战版)
- scripts/    E2E 测试脚本

# 已实现功能
- 书签管理:增删改查 + 树形分类 + 拖拽排序 + 主色自适应
- 搜索引擎:8 个内置引擎 + 自定义引擎 + favicon 自动抓取
- 必应壁纸:每日轮播 + 多分辨率自动选择 + 1.6MP 质量优先
- 全局设置:主题/行为/数据/工具 4 分类 + 跨设备同步
- 文件上传:图标/书签/通用(容器持久化 + 跨域 URL 拼接)
- 同步:基于变更日志的设备间数据同步
- 跨域部署:前后端分离 + runtime config.json 无需重新编译

# 进度记录
- 已完成 P0~P52 共 53 个开发节点(详细见 说明文档.md)
- 当前版本:v1.0 部署就绪

# 部署文档
- README.md:项目说明 + 快速开始
- 说明文档.md:完整开发进度(中文)
- docs/DEPLOY.md:1Panel 部署手册(Docker 模式)
This commit is contained in:
2026-07-05 05:09:56 +08:00
commit 68be41e7a2
129 changed files with 15900 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
# Capacitor Android 打包
## 前置环境
1. **Node.js** ≥ 18(项目用 22
2. **JDK 17**`java -version` 可验证)
3. **Android Studio** + Android SDKAPI 34
4. 配好 `ANDROID_HOME``ANDROID_SDK_ROOT` 环境变量
## 一次性配置
```bash
cd frontend
npm install
# 构建前端静态资源到 dist/
npm run build
# 初始化 Capacitor + 创建 android 壳工程
npx cap init cn.myhomepage.app MyHomePage --web-dir=dist
npx cap add android
```
## 每次更新
```bash
# 1. 改完前端代码
npm run build
# 2. 同步到 android 工程
npx cap sync android
# 3. 在 Android Studio 中打开并打包
npx cap open android
# 或命令行:
cd android
./gradlew assembleDebug # 调试 APK → android/app/build/outputs/apk/debug/
./gradlew assembleRelease # 发布 APK(需先在 build.gradle 配签名)
```
## APP 内后端地址
APP 内不能使用 vite proxy,必须指向真实后端:
修改 `frontend/.env.production`
```
VITE_API_BASE=http://10.0.2.2:5080 # Android 模拟器访问宿主机
# 或:
VITE_API_BASE=https://your-domain.com
```
然后 `npm run build` 重新构建。
## 网络权限
首次 `npx cap add android` 后,在 `android/app/src/main/AndroidManifest.xml`
`<application>` 标签里加:
```xml
android:usesCleartextTraffic="true"
```
(如已在 `capacitor.config.ts` 中设 `cleartext: true`,则通常已自动加好)
## 常见问题
- **空白页 / 加载失败**:检查 `VITE_API_BASE` 是否填写,后端是否允许 CORS
- **CORS 报错**:在 `backend/appsettings.json``Cors.Origins` 中加上 `capacitor://localhost``http://localhost`
- **图片显示 404**`Upload.BaseUrl``appsettings.{Env}.json` 保持一致,建议反代