// 应用环境配置 — 通过 --dart-define 注入 // // 使用方式: // flutter run # 开发模式(localhost) // flutter run --dart-define=API_BASE_URL=https://api.nuanji.app/api/v1 # 生产模式 // // 安全说明: // - 生产环境强制 HTTPS(Android network_security_config 禁止明文流量) // - 开发模式使用 localhost(Android 网络安全配置已允许 localhost 明文) /// 应用环境配置 — 集中管理所有外部服务地址 class AppConfig { /// API 基础 URL(后端 Axum 服务地址) final String apiBaseUrl; /// SSE 推送服务 URL(通常与 API 同一地址) final String sseBaseUrl; const AppConfig({ required this.apiBaseUrl, required this.sseBaseUrl, }); /// 从编译时环境变量构建配置 /// /// 使用 `--dart-define` 注入,未设置时使用生产 HTTPS 默认值。 /// 开发环境使用 [dev] 常量或通过 --dart-define 覆盖。 factory AppConfig.fromEnvironment({ String defaultApiBaseUrl = 'https://api.nuanji.app/api/v1', String defaultSseBaseUrl = 'https://api.nuanji.app/api/v1', }) { // const String.fromEnvironment 在编译时求值 const apiBaseUrl = String.fromEnvironment( 'API_BASE_URL', defaultValue: 'https://api.nuanji.app/api/v1', ); const sseBaseUrl = String.fromEnvironment( 'SSE_BASE_URL', defaultValue: 'https://api.nuanji.app/api/v1', ); return AppConfig( apiBaseUrl: apiBaseUrl, sseBaseUrl: sseBaseUrl, ); } /// 开发环境默认配置(localhost 明文 — 仅用于本地调试) static const dev = AppConfig( apiBaseUrl: 'http://localhost:3000/api/v1', sseBaseUrl: 'http://localhost:3000/api/v1', ); }