# qxx **Repository Path**: Andy688/qxx ## Basic Information - **Project Name**: qxx - **Description**: 青签签应用是一个基于HarmonyOS的ArkTS应用,模拟申请、获取和管理青秀区文化签证的流程。该应用展示了如何在HarmonyOS环境下创建具有多页面流程的应用,实现表单提交、加载动画、结果展示和证书管理等功能。 - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-05-15 - **Last Updated**: 2025-11-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 鸿蒙应用开发文档 ## 1. 项目概述 青签签应用是一个基于HarmonyOS的ArkTS应用,模拟申请、获取和管理青秀区文化签证的流程。该应用展示了如何在HarmonyOS环境下创建具有多页面流程的应用,实现表单提交、加载动画、结果展示和证书管理等功能。 ## 效果展示
效果图1 效果图2 效果图3
## 2. 技术架构 ### 2.1 开发环境 - 开发框架:HarmonyOS/ArkTS - IDE:DevEco Studio - API版本:5.0.4(16) - 构建工具:hvigor ### 2.2 项目结构 ``` qxq/ ├── entry/ # 主模块 │ ├── src/main/ │ │ ├── ets/ # 源代码目录 │ │ │ ├── api/ # API服务与工具类 │ │ │ ├── entryability/ # 应用入口 │ │ │ ├── pages/ # 页面组件 │ │ │ └── images/ # 图像资源 │ │ └── resources/ # 应用资源 │ └── build/ # 构建输出 └── AppScope/ # 应用作用域配置 ``` ### 2.3 核心模块 - **API模块**:提供应用的数据管理和业务逻辑 - **路由模块**:管理应用内页面跳转 - **页面模块**:提供用户界面和交互 - **资源模块**:管理应用资源(字符串、图像等) ## 3. API文档 ### 3.1 API服务(`API.ets`) 主要负责应用程序的初始化和全局服务管理。 ```typescript class API { static getInstance(): API // 获取API单例实例 init(): void // 初始化API服务 } ``` ### 3.2 路由管理器(`router.ets`) 管理应用内页面导航和路由跳转。 ```typescript enum RouteName { WELCOME, // 欢迎页 APPLICATION, // 申请表单页 LOADING, // 加载页 APPROVAL, // 审批通过页 REJECTION, // 拒绝页 CERTIFICATE, // 证书页 INDEX // 索引页 } class RouteManager { static push(url: string, params?: Object): void // 导航到指定页面 static pop(): void // 返回上一页 static randomApprovalOrRejection(): void // 随机跳转到通过或拒绝页面 static handleApplicationSubmit( // 处理申请表单提交 formComplete: boolean, callback: () => void, userName?: string ): void static getParams(): Object // 获取当前页面的路由参数 } ``` ### 3.3 用户数据服务(`UserDataService.ets`) 管理用户信息的存储和传递。 ```typescript class UserDataService { static getInstance(): UserDataService // 获取UserDataService单例实例 setUserName(name: string): void // 设置用户名 getUserName(): string // 获取用户名 generateCertificateNumber(): string // 生成新的证书编号 getCertificateNumber(): string // 获取证书编号 recordCertificateDates(): void // 记录证书有效期 getStartDate(): Date // 获取证书有效期起始日期 getEndDate(): Date // 获取证书有效期结束日期 } ``` ## 4. 页面组件 ### 4.1 页面流程图 ``` Index → Welcome → Application → Loading → Approval/Rejection → Certificate ``` ### 4.2 主要页面 | 页面 | 文件 | 说明 | |-----|------|-----| | 索引页 | Index.ets | 应用启动初始页面,会自动跳转至欢迎页 | | 欢迎页 | Welcome.ets | 应用欢迎页面,展示应用简介及引导 | | 申请表单 | Application.ets | 用户填写申请信息的表单页面 | | 加载页 | Loading.ets | 提交申请后的加载动画页面 | | 审批通过 | Approval.ets | 申请通过展示页面 | | 拒绝页 | Rejection.ets | 申请被拒绝展示页面 | | 证书页 | Certificate.ets | 显示用户证书详情及管理功能 | ## 5. 开发指南 ### 5.1 新增页面流程 1. 在`entry/src/main/ets/pages/`目录下创建新页面组件 2. 在`main_pages.json`中注册页面组件 3. 在`RouteName`枚举中添加新页面的路由名称 4. 使用`RouteManager.push()`方法导航到新页面 ### 5.2 数据流管理 - 使用`UserDataService`单例存储和传递用户数据 - 通过`RouteManager`的路由参数在页面间传递数据 ### 5.3 路由配置要点 确保以下三处配置保持一致: 1. `main_pages.json`中的页面名称 2. `router.ets`中的`RouteName`枚举值 3. 页面组件文件名与路由名称一致 ## 6. 功能模块 ### 6.1 表单验证 在`Application.ets`中实现表单验证逻辑: ```typescript validateForm(): boolean { // 验证各字段是否填写 if (!this.name || !this.age || !this.gender || this.storeType === '请选择' || !this.understanding) { return false; } // 验证至少勾选一个文化活动 if (!this.activities.some(activity => activity)) { return false; } return true; } ``` ### 6.2 证书管理 在`Certificate.ets`中实现证书显示和管理功能: - 显示证书基本信息(持有人、编号、有效期等) - 提供标签页切换功能(详情、使用记录、赞助) - 集成网页浏览功能(内置WebView) ### 6.3 外部链接处理 使用内置WebView打开外部链接: ```typescript openBrowser(url: string): void { this.currentUrl = url; this.showWebView = true; console.info('正在应用内打开URL: ' + url); } ``` ## 7. 构建与部署 ### 7.1 构建应用 使用以下命令构建应用: ```bash hvigor assembleHap ``` 构建输出位置: ``` entry/build/default/outputs/default/entry-default-signed.hap ``` ### 7.2 应用签名 在`build-profile.json5`中配置签名信息: ```json "signingConfigs": [ { "name": "default", "type": "HarmonyOS", "material": { "certpath": "<证书路径>.cer", "keyAlias": "debugKey", "keyPassword": "<密钥密码>", "profile": "<配置文件路径>.p7b", "signAlg": "SHA256withECDSA", "storeFile": "<密钥库路径>.p12", "storePassword": "<密钥库密码>" } } ] ``` ### 7.3 安装部署 可通过以下方式安装应用: - 通过DevEco Studio直接部署到设备 - 使用HDB工具命令:`hdc app install ` - 将HAP文件传输到设备后手动安装 ## 8. 注意事项和最佳实践 1. **组件重用**:使用`@Builder`装饰器创建可重用的UI组件 2. **状态管理**:使用`@State`、`@Prop`等装饰器管理组件状态 3. **错误处理**:在网络请求和路由跳转中添加错误处理 4. **性能优化**:避免在UI线程中执行耗时操作 5. **样式统一**:保持一致的颜色方案和组件样式 ## 9. 附录 ### 9.1 相关资源 - [HarmonyOS开发文档](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/start-overview-0000001058499525) - [ArkTS语言规范](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-overview-0000001281480778) ### 9.2 常见问题解答 1. **Q: 如何在不同页面间传递数据?** A: 使用`UserDataService`单例存储数据或通过路由参数传递 2. **Q: 如何处理应用内的网页浏览?** A: 使用内置的Web组件实现应用内浏览器功能 3. **Q: 应用签名失败怎么办?** A: 检查`build-profile.json5`中的签名配置是否正确 # 如果认可我,可以请我喝杯☕
wx zfb