String.fromEnvironment
是 Dart 提供的一个方法,用于在编译时获取环境变量的值。它通常用于在不同的构建环境(如开发、测试、生产)中切换配置。
使用方法
String baseUrl = const String.fromEnvironment('BASEURL', defaultValue: 'https://default-url.com');
解释
String.fromEnvironment
方法会从编译时传入的环境变量中获取名为'BASEURL'
的值。- 如果
'BASEURL'
没有被设置,那么会使用defaultValue
指定的默认值'https://default-url.com'
。
典型使用场景
- 在构建不同环境的应用程序时,你可以通过设置不同的环境变量来改变配置值,比如 API 基础 URL、分析工具的密钥等。
- 在使用
flutter build
命令时,可以传递环境变量来配置不同的值,例如:flutter build apk --dart-define=BASEURL=https://api.example.com
其中,BASEURL的值不能自动生成,如果需要自动(例如编译当前时间),需要外套一层脚本:‘
@echo off
REM 获取当前时间并格式化
for /f "tokens=2 delims==" %%I in ('"wmic os get localdatetime /value"') do set datetime=%%I
set formattedTime=%datetime:~0,4%-%datetime:~4,2%-%datetime:~6,2%T%datetime:~8,2%:%datetime:~10,2%:%datetime:~12,2%Z
REM 传递 BUILD_TIME 到 Dart 编译
flutter build apk --debug --dart-define=BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
注意事项
String.fromEnvironment
只能在编译时获取值,因此它只能用于常量表达式。- 如果你需要在运行时动态设置环境变量,则不能使用此方法,需要考虑其他方式,如从配置文件中读取或通过网络请求获取。