# infant **Repository Path**: RunSun/infant ## Basic Information - **Project Name**: infant - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-17 - **Last Updated**: 2026-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 童趣识字 婴幼儿识字与古诗词学习APP,基于 UniApp + Vue3 + TypeScript + Pinia 开发,支持 H5、微信小程序、Android/iOS APP 多端运行。 ## 目录 - [项目结构](#项目结构) - [环境准备](#环境准备) - [本地开发](#本地开发) - [打包H5](#打包h5) - [打包APP](#打包app) - [部署说明](#部署说明) - [应用上架](#应用上架) --- ## 项目结构 ``` infant/ ├── src/ # 源代码目录 │ ├── api/ # API 接口封装 │ │ ├── character.ts # 汉字相关接口 │ │ ├── learning.ts # 学习记录接口 │ │ ├── poem.ts # 古诗相关接口 │ │ └── user.ts # 用户相关接口 │ │ │ ├── components/ # 公共组件 │ │ ├── custom-tabbar/ # 自定义底部导航栏 │ │ └── zp-public-virtual-cell/ # 虚拟列表单元格 │ │ │ ├── mock/ # Mock 数据 │ │ ├── character.ts # 汉字数据(500+字) │ │ ├── poem.ts # 古诗数据(100首) │ │ └── user.ts # 用户模拟数据 │ │ │ ├── pages/ # 页面文件 │ │ ├── index/ # 启动页/欢迎页 │ │ ├── login/ # 登录页 │ │ ├── register/ # 注册页 │ │ ├── child-select/ # 儿童选择页 │ │ ├── home/ # 首页 │ │ ├── character/ # 识字模块 │ │ │ ├── list.vue # 汉字列表(分页) │ │ │ ├── detail.vue # 汉字详情 │ │ │ └── learn.vue # 汉字学习 │ │ ├── poem/ # 古诗模块 │ │ │ ├── list.vue # 古诗列表(分页) │ │ │ ├── detail.vue # 古诗详情 │ │ │ ├── learn.vue # 古诗学习 │ │ │ └── recite.vue # 古诗背诵 │ │ ├── games/ # 游戏模块 │ │ │ ├── index.vue # 游戏入口 │ │ │ ├── rank.vue # 排行榜 │ │ │ ├── match.vue # 汉字连连看 │ │ │ ├── pinyin.vue # 拼音大作战 │ │ │ ├── stroke.vue # 笔画小能手 │ │ │ └── picture.vue # 看图识字 │ │ ├── review/ # 复习模块 │ │ │ ├── index.vue # 复习入口 │ │ │ └── quiz.vue # 综合测验 │ │ ├── tasks/ # 任务模块 │ │ │ └── index.vue # 每日任务 │ │ ├── parent/ # 家长中心 │ │ │ ├── index.vue # 家长中心入口 │ │ │ ├── report.vue # 学习报告 │ │ │ ├── settings.vue # 学习设置 │ │ │ ├── achievements.vue # 成就徽章 │ │ │ └── children.vue # 儿童管理 │ │ └── profile/ # 个人中心 │ │ ├── index.vue # 我的 │ │ ├── account.vue # 账户设置 │ │ ├── favorites.vue # 我的收藏 │ │ ├── feedback.vue # 意见反馈 │ │ ├── about.vue # 关于我们 │ │ ├── privacy.vue # 隐私政策 │ │ └── terms.vue # 用户协议 │ │ │ ├── stores/ # Pinia 状态管理 │ │ ├── user.ts # 用户状态 │ │ └── learning.ts # 学习状态(含本地持久化) │ │ │ ├── styles/ # 样式文件 │ │ ├── variables.scss # SCSS 变量定义 │ │ └── common.scss # 公共样式 │ │ │ ├── types/ # TypeScript 类型定义 │ │ └── index.ts # 类型声明 │ │ │ ├── utils/ # 工具函数 │ │ ├── request.ts # 网络请求封装 │ │ └── storage.ts # 本地存储封装 │ │ │ ├── uni_modules/ # uni-app 插件 │ │ └── z-paging/ # 分页组件 │ │ │ ├── static/ # 静态资源 │ │ └── tabbar/ # 底部导航栏图标 │ │ │ ├── App.vue # 应用入口组件 │ ├── main.ts # 应用入口文件 │ ├── manifest.json # 应用配置文件 │ ├── pages.json # 页面路由配置 │ └── uni.scss # uni-app 样式变量 │ ├── dist/ # 构建输出目录 │ ├── build/h5/ # H5 构建产物 │ ├── build/app/ # APP 构建产物 │ └── build/mp-weixin/ # 微信小程序构建产物 │ ├── package.json # 项目依赖配置 ├── vite.config.ts # Vite 构建配置 ├── tsconfig.json # TypeScript 配置 └── README.md # 项目说明文档 ``` ### 核心技术栈 | 技术 | 版本 | 说明 | |------|------|------| | UniApp | 3.0.0 | 跨平台开发框架 | | Vue | 3.4.x | 前端框架 | | TypeScript | 5.4.x | 类型系统 | | Pinia | 2.1.x | 状态管理 | | Vite | 5.2.x | 构建工具 | | SCSS | 1.72.x | CSS 预处理器 | | z-paging | - | 分页组件 | ### 功能模块 | 模块 | 功能 | |------|------| | 识字模块 | 500+ 汉字学习,支持拼音、笔顺、释义、组词 | | 古诗模块 | 100 首经典古诗,含注释、译文、赏析 | | 游戏模块 | 连连看、拼音大作战、笔画小能手、看图识字 | | 复习模块 | 复习巩固、综合测验 | | 任务系统 | 每日学习任务 | | 家长中心 | 学习报告、设置、成就、儿童管理 | --- ## 环境准备 ### 1. 安装 Node.js 下载并安装 Node.js(建议 v18.x 或更高版本):https://nodejs.org/ 验证安装: ```bash node -v # 应显示 v18.x.x 或更高 npm -v # 应显示 9.x.x 或更高 ``` ### 2. 安装 HBuilderX(用于 APP 打包) 下载 HBuilderX:https://www.dcloud.io/hbuilderx.html - 推荐下载**正式版**(包含 App 开发所需插件) - 安装后需要登录 DCloud 账号 ### 3. 安装项目依赖 ```bash cd infant npm install ``` --- ## 本地开发 ### H5 开发模式 ```bash npm run dev:h5 ``` 访问 http://localhost:8080 查看效果。 ### 微信小程序开发模式 ```bash npm run dev:mp-weixin ``` 构建完成后,用微信开发者工具打开 `dist/dev/mp-weixin` 目录。 ### APP 开发模式 ```bash npm run dev:app ``` 或使用 HBuilderX 打开项目,点击菜单 **运行 → 运行到手机或模拟器**。 --- ## 打包H5 ### 1. 执行构建命令 ```bash npm run build:h5 ``` 构建产物输出到 `dist/build/h5` 目录。 ### 2. 构建产物结构 ``` dist/build/h5/ ├── index.html # 入口 HTML ├── assets/ # 静态资源(JS、CSS、图片等) │ ├── index-xxx.js # 主 JS 文件 │ ├── index-xxx.css # 主 CSS 文件 │ └── ... # 其他资源 └── static/ # 静态文件 └── tabbar/ # 图标等 ``` ### 3. 修改部署路径(可选) 如果部署到子目录,需要修改 `src/manifest.json`: ```json { "h5": { "router": { "mode": "hash", "base": "/your-sub-path/" } } } ``` --- ## 部署说明 ### 方式一:Nginx 部署 1. 将 `dist/build/h5` 目录上传到服务器 2. 配置 Nginx: ```nginx server { listen 80; server_name your-domain.com; root /var/www/infant-h5; index index.html; # 开启 gzip 压缩 gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml; gzip_min_length 1000; # 静态资源缓存 location /assets { expires 1y; add_header Cache-Control "public, immutable"; } # SPA 路由支持 location / { try_files $uri $uri/ /index.html; } } ``` 3. 重载 Nginx: ```bash sudo nginx -s reload ``` ### 方式二:Apache 部署 1. 上传文件到服务器 2. 创建 `.htaccess` 文件(放在 h5 目录下): ```apache RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] AddOutputFilterByType DEFLATE text/html text/css application/javascript ExpiresActive On ExpiresByType image/png "access plus 1 year" ExpiresByType text/css "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" ``` ### 方式三:静态托管服务 支持部署到以下平台: | 平台 | 地址 | |------|------| | Vercel | https://vercel.com | | Netlify | https://netlify.com | | GitHub Pages | https://pages.github.com | | Cloudflare Pages | https://pages.cloudflare.com | | 阿里云 OSS | 配合 CDN 使用 | | 腾讯云 COS | 配合 CDN 使用 | **Vercel 部署示例:** ```bash # 安装 Vercel CLI npm i -g vercel # 部署 cd dist/build/h5 vercel ``` --- ## 打包APP ### 方式一:云打包(推荐) 使用 HBuilderX 进行云打包,无需本地配置 Android/iOS 开发环境。 #### 步骤 1:打开项目 用 HBuilderX 打开 `infant` 项目目录。 #### 步骤 2:获取 AppID 1. 登录 [DCloud 开发者中心](https://dev.dcloud.net.cn/) 2. 创建应用,获取 AppID 3. 填入 `src/manifest.json` 的 `appid` 字段 #### 步骤 3:配置应用信息 编辑 `src/manifest.json`: ```json { "name": "童趣识字", "appid": "__UNI__XXXXXX", "versionName": "1.0.0", "versionCode": "100", "app-plus": { "distribute": { "android": { "packagename": "com.yourcompany.infant", "minSdkVersion": 21, "targetSdkVersion": 33 }, "ios": { "appid": "com.yourcompany.infant" } } } } ``` #### 步骤 4:执行云打包 1. HBuilderX 菜单:**发行 → 原生App-云打包** 2. 选择平台(Android/iOS) 3. 配置证书: - **Android**:可使用 DCloud 公共证书(测试)或自有证书 - **iOS**:需要 Apple 开发者证书和描述文件 4. 点击"打包",等待完成 5. 下载生成的 APK/IPA 文件 #### 本地运行测试 **Android 真机:** 1. 手机开启"开发者选项"和"USB调试" 2. USB 连接电脑 3. HBuilderX:**运行 → 运行到手机或模拟器 → 选择设备** **Android 模拟器:** 1. 安装模拟器(MuMu、雷电、夜神等) 2. 启动模拟器 3. HBuilderX 自动检测并连接 **iOS 真机:** 1. 需要 Mac + Xcode + 开发者证书 2. 数据线连接 iPhone 3. 信任开发者证书后运行 ### 方式二:离线打包(高级) 适合需要深度定制原生功能的场景。 #### Android 离线打包 1. 下载 [Android 离线 SDK](https://nativesupport.dcloud.net.cn/AppDocs/download/android) 2. 构建前端资源: ```bash npm run build:app ``` 3. 复制资源到 SDK: ``` dist/build/app → SDK/assets/apps/__UNI__XXXXX/www ``` 4. Android Studio 打开 SDK 项目 5. 修改 `build.gradle` 配置包名、版本 6. 生成签名 APK:**Build → Generate Signed Bundle/APK** #### iOS 离线打包 1. 下载 [iOS 离线 SDK](https://nativesupport.dcloud.net.cn/AppDocs/download/ios) 2. 构建前端资源: ```bash npm run build:app ``` 3. 复制资源到 SDK: ``` dist/build/app → SDK/HBuilder-Hello/Pandora/apps/__UNI__XXXXX/www ``` 4. Xcode 打开 `.xcodeproj` 5. 配置签名和 Bundle ID 6. 打包:**Product → Archive** --- ## 应用上架 ### Android 应用上架 #### 准备材料 | 材料 | 要求 | |------|------| | APK 文件 | Release 签名 | | 应用图标 | 512x512 PNG(无圆角) | | 应用截图 | 至少 3 张,推荐 1080x1920 | | 应用描述 | 简介 + 详细描述 | | 隐私政策 | 网页链接(必需) | | 软著证书 | 部分市场需要 | #### 主流应用市场 | 市场 | 开发者平台 | 审核周期 | |------|------------|---------| | 华为应用市场 | https://developer.huawei.com | 1-3 天 | | 小米应用商店 | https://dev.mi.com | 1-2 天 | | OPPO 软件商店 | https://open.oppomobile.com | 1-2 天 | | vivo 应用商店 | https://dev.vivo.com.cn | 1-2 天 | | 应用宝 | https://open.qq.com | 2-5 天 | | Google Play | https://play.google.com/console | 3-7 天 | #### 上架流程 1. **注册开发者账号**:完成实名认证 2. **创建应用**:填写基本信息 3. **上传安装包**:APK/AAB 文件 4. **完善信息**:截图、描述、分类 5. **隐私合规**:提交隐私政策 6. **提交审核**:等待审核通过 #### 常见审核问题 | 问题 | 解决方案 | |------|---------| | 隐私政策不完善 | 详细说明数据收集、使用、存储 | | 权限过多 | 只申请必要权限并说明用途 | | 应用闪退 | 充分测试后再提交 | | 内容违规 | 确保符合平台规范 | ### iOS 应用上架 #### 前置要求 - Mac 电脑(macOS) - Apple 开发者账号($99/年) - Xcode 开发工具 #### 准备材料 | 材料 | 要求 | |------|------| | IPA 文件 | App Store 签名 | | 应用图标 | 1024x1024 PNG(无透明) | | 应用截图 | 6.5寸、5.5寸等多尺寸 | | 应用描述 | 支持多语言 | | 隐私政策 | 必须提供 URL | | 年龄分级 | 填写问卷 | #### 上架流程 1. **创建 App ID** - 登录 [Apple Developer](https://developer.apple.com) - Certificates, Identifiers & Profiles → Identifiers - 创建并配置 Bundle ID 2. **创建证书** - Distribution Certificate(分发证书) - App Store Provisioning Profile 3. **创建应用** - 登录 [App Store Connect](https://appstoreconnect.apple.com) - 我的 App → 新建 - 填写应用信息 4. **上传 IPA** - Xcode → Organizer → Upload - 或使用 Transporter 工具 5. **填写商店信息** - 版本、截图、描述 - 价格与销售范围 - App 隐私 6. **提交审核** - 审核周期:1-7 天 #### 审核注意 - **4.2 最低功能**:不能是简单网页封装 - **5.1.1 数据隐私**:需要明确隐私政策 - **儿童类应用**:需符合 COPPA,限制广告和追踪 --- ## 其他命令 ```bash # TypeScript 类型检查 npm run type-check # 构建微信小程序 npm run build:mp-weixin # 构建支付宝小程序 npm run build:mp-alipay # 开发模式(支付宝小程序) npm run dev:mp-alipay ``` --- ## 常见问题 ### Q1: 构建报错 "Cannot find module" ```bash rm -rf node_modules npm install ``` ### Q2: H5 部署后页面空白 检查 `manifest.json` 中 `h5.router.base` 是否正确配置。 ### Q3: APP 打包失败 1. 确认 DCloud 账号已登录 2. 检查 AppID 是否正确 3. 检查证书配置 ### Q4: 图片加载失败 静态资源放在 `src/static` 目录,使用绝对路径: ```html ``` ### Q5: 小程序体积过大 1. 图片压缩或使用 CDN 2. 分包加载 3. 删除未使用的代码 --- ## 版本历史 | 版本 | 日期 | 说明 | |------|------|------| | 1.0.0 | 2024-xx-xx | 首个正式版本 | --- ## 许可证 MIT License