Files
video/app/lib/core/config/app_config.dart
T
2026-10-17 09:41:11 +08:00

50 lines
2.1 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'package:package_info_plus/package_info_plus.dart';
/// 全局配置常量(域名发现、公共请求头、版本号,对应《01-开发文档》5.5/5.6/5.7)
class AppConfig {
AppConfig._();
/// App 版本(运行时从 PackageInfo 读取,始终与 APK 真实 versionName/versionCode 一致;
/// 不要改回硬编码——硬编码一旦与 pubspec 脱节,老用户会无限收到更新提示)
static late final String appVersion;
static late final int appVersionCode;
/// 启动时初始化版本信息(main() 中 runApp 前必须调用)
static Future<void> initVersion() async {
final info = await PackageInfo.fromPlatform();
appVersion = info.version;
appVersionCode = int.tryParse(info.buildNumber) ?? 0;
}
/// 平台标识(运行时按 iOS/Android 判定,见 platformName)
static const String platformNameIOS = 'ios';
static const String platformNameAndroid = 'android';
/// 域名发现:DNS TXT 记录域名与兜底域名后缀
static const String dnsTxtHost = 'txt.256kb.top';
static const String fallbackDomainSuffix = '_jsnbhh.vip';
/// DoH 服务(阿里 / 腾讯),TXT 解析走 JSON API
static const List<String> dohServers = [
'https://223.5.5.5/resolve',
'https://119.29.29.29/dns-query',
];
/// 缓存域名连续失败达到该阈值后,重新走完整发现流程
static const int domainFailureThreshold = 3;
/// 开发调试:--dart-define=API_BASE=http://localhost:8000 可直接指定本地服务,
/// 跳过域名发现(生产构建不传即走 TXT/兜底逻辑)
static const String devApiBase = String.fromEnvironment('API_BASE');
/// 微信支付 iOS 回跳 Universal Link:
/// --dart-define=WECHAT_UNIVERSAL_LINK=https://app.256kb.top/wechat
/// 须与 pubspec.yaml 中 fluwx.ios.universal_link 保持一致;未传时 iOS 端无法回跳
static const String wechatUniversalLink =
String.fromEnvironment('WECHAT_UNIVERSAL_LINK');
/// 请求超时
static const Duration connectTimeout = Duration(seconds: 10);
static const Duration receiveTimeout = Duration(seconds: 20);
}