# React-Native **Repository Path**: xiangkp/react-native ## Basic Information - **Project Name**: React-Native - **Description**: No description available - **Primary Language**: JavaScript - **License**: Artistic-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-16 - **Last Updated**: 2026-07-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Enterprise Mobile 面向企业交付的 React Native 三端基础项目,统一支持 Android、iOS 与 HarmonyOS。项目固定在 React Native `0.77.1`,与 RNOH `0.77.72` 对齐,避免三端因 React Native 大版本不一致产生重复维护。 ## 已包含 - 登录态、工作台、工单列表、工单详情、个人中心 - React Navigation 类型安全导航 - TanStack Query 服务端状态与 Zustand 客户端状态 - Axios 请求、统一鉴权、401 退出、超时与重试 - React Hook Form + Zod 表单校验 - Keychain / Keystore / HUKS 安全凭据存储与 AsyncStorage 非敏感持久化 - 深色/浅色/跟随系统主题 - 中英文国际化基础设施 - 全局错误边界、加载态、空态与失败态 - Android Kotlin、iOS Swift、HarmonyOS ArkTS 原生桥接示例 - TypeScript 严格模式、ESLint、Jest - Android/iOS/HarmonyOS 发布与上线检查文档 ## 技术基线 | 分类 | 选择 | 原因 | | ---------- | --------------------- | ------------------------------------------- | | 跨端 | React Native 0.77.1 | 与稳定 RNOH 0.77 系列严格匹配 | | HarmonyOS | RNOH 0.77.72 | Fabric、新架构、ArkTS TurboModule | | 导航 | React Navigation 6 | Android/iOS 使用 screens 3.36,HarmonyOS 使用稳定适配包 | | 服务端状态 | TanStack Query | 缓存、重试、失效和请求生命周期完整 | | 客户端状态 | Zustand | API 简洁,减少模板代码 | | 表单 | React Hook Form + Zod | 运行时校验与 TypeScript 类型统一 | | 网络 | Axios | 企业常用拦截器和取消请求能力 | | 敏感存储 | Secure Key Store | iOS Keychain、Android Keystore、Harmony HUKS | | 普通存储 | AsyncStorage 适配层 | 主题、用户展示信息等非敏感数据 | 完整调研见 [高 Star 项目对比](docs/opensource-comparison.md)。 ## 目录 ```text src/ ├── app/ # Provider、主题、根导航 ├── config/ # 环境与构建配置 ├── features/ # 纵向业务模块 ├── i18n/ # 国际化资源 ├── native/ # JS/TS 原生能力契约 ├── services/ # HTTP、存储、数据仓库 ├── shared/components/ # 无业务通用组件 ├── store/ # 全局客户端状态 └── types/ # 领域与导航类型 android/ # Kotlin 原生工程 ios/ # Swift 原生工程 harmony/ # DevEco Studio / ArkTS 宿主工程 docs/ # 架构、桥接、发布文档 ``` 依赖方向必须保持为: ```text features -> services/native/shared -> config/types app -> features/store/shared ``` 业务模块之间不要直接读取对方内部文件;跨业务共享内容提升到 `shared` 或 `services`。 ## 环境要求 - Node.js `18.18 - 22.x`,推荐并已通过验证的是 Node.js 20 LTS - npm 10+ - Android:JDK 17、Android Studio、Android 15 SDK - iOS:macOS、Xcode 16、CocoaPods - HarmonyOS:DevEco Studio、API 12+ SDK、RNOH 0.77 配套设备或模拟器 ## 快速开始 ```bash npm install npm start ``` RNOH 0.77 CLI 在 Node.js 24 中会因 Node `Dirent` API 变化导致初始化失败;仓库通过 `.nvmrc` 固定 Node.js 20。 另开终端: ```bash npm run android ``` iOS: ```bash cd ios bundle install bundle exec pod install cd .. npm run ios ``` HarmonyOS: ```bash npm run harmony:bundle npm run harmony:run ``` 首次配置和 DevEco Studio 操作见 [HarmonyOS 指南](docs/harmonyos.md)。 演示账号已在登录页预填。当前未配置后端时使用 `src/services/workOrders.ts` 中的演示数据;设置真实接口后,将 `src/config/environment.ts` 的 `apiBaseUrl` 接入构建环境配置。 `.env.example` 是 CI 环境变量契约示例,项目不会把它自动打进 Bundle;正式流水线应生成不含服务端密钥的 `environment.ts`。 ## 开发质量 ```bash npm run typecheck npm run lint npm test npm run audit:prod npm run verify ``` ## 原生桥接 应用通过统一的 `EnterpriseDevice` 接口读取设备和应用信息: ```ts const info = await getEnterpriseDeviceInfo(); ``` - TypeScript 契约:`src/native/specs/NativeEnterpriseDevice.ts` - Android:`EnterpriseDeviceModule.kt` - iOS:`EnterpriseDeviceModule.swift` - HarmonyOS:`EnterpriseDeviceModule.ets` 从“为什么桥接”到三端注册流程,请看 [小白原生桥接教程](docs/native-bridge.md)。 ## 上线前必须替换 1. 应用名、Bundle ID、Android applicationId 与 HarmonyOS bundleName。 2. 演示登录逻辑和演示工单数据。 3. 正式 API 地址、证书固定策略和 Token 刷新接口。 4. Android keystore、iOS 签名、HarmonyOS 签名文件。 5. 隐私政策、权限用途说明、埋点与崩溃监控配置。 6. 应用图标、启动图、品牌色和商店截图。 详细清单见 [发布指南](docs/release.md)。 ## 文档 - [架构设计](docs/architecture.md) - [Windows 开发环境](docs/setup-windows.md) - [高 Star 项目对比](docs/opensource-comparison.md) - [小白原生桥接教程](docs/native-bridge.md) - [HarmonyOS 开发指南](docs/harmonyos.md) - [三端发布与上线检查](docs/release.md) ## License 本项目代码可作为企业内部项目基础使用;引入的第三方依赖遵循各自许可证。