初始提交:浏览器首页 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:
@@ -0,0 +1,69 @@
|
||||
# Capacitor Android 打包
|
||||
|
||||
## 前置环境
|
||||
|
||||
1. **Node.js** ≥ 18(项目用 22)
|
||||
2. **JDK 17**(`java -version` 可验证)
|
||||
3. **Android Studio** + Android SDK(API 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` 保持一致,建议反代
|
||||
Reference in New Issue
Block a user