在 Android/iOS 中创建引擎时如何将参数传递给 Flutter/Dart 主函数?
How do I pass arguments to Flutter/Dart main function when I create engine in Android/iOS?
我想将一些参数传递给 main.dart
中的 Flutter main
函数。
const customTestFlag = bool.fromEnvironment("CUSTOM_TEST_FLAG");
void main(List<String> args) {
// I want get some arguments in there
print('get args from main.dart => ${args.toString()}');
// or get arguments form environment
print('get args form env => $customTestFlag');
runApp(app.MyApp());
}
然后我在 Android 中创建 flutter 引擎,如下所示:
List<String> dartVmArgs = new ArrayList<>();
dartVmArgs.add("--CUSTOM_TEST_FLAG=true");
dartVmArgs.add("--dart-define=CUSTOM_TEST_FLAG=true");
dartVmArgs.add("--dart-entrypoint-args=CUSTOM_TEST_FLAG=true");
dartVmArgs.add("--dart-entrypoint-args CUSTOM_TEST_FLAG=true");
FlutterEngine flutterEngine = new FlutterEngine(app, (String[]) dartVmArgs.toArray());
但是这些代码对我不起作用,也许像 flutter run --dart-define="CUSTOM_TEST_FLAG=true"
这样的启动应用程序会起作用,但这不符合我们的需求,我们希望在创建或启动 Flutter 引擎时传递该值
谢谢。
使用 const
关键字创建一个全局变量。
const test = String.fromEnvironment('test', defaultValue='defaultValue');
然后在 main.dart 文件中,您可以直接访问 test
变量。
虽然运行应用程序请使用
flutter run --dart-define=test=yourDataHere
我想将一些参数传递给 main.dart
中的 Flutter main
函数。
const customTestFlag = bool.fromEnvironment("CUSTOM_TEST_FLAG");
void main(List<String> args) {
// I want get some arguments in there
print('get args from main.dart => ${args.toString()}');
// or get arguments form environment
print('get args form env => $customTestFlag');
runApp(app.MyApp());
}
然后我在 Android 中创建 flutter 引擎,如下所示:
List<String> dartVmArgs = new ArrayList<>();
dartVmArgs.add("--CUSTOM_TEST_FLAG=true");
dartVmArgs.add("--dart-define=CUSTOM_TEST_FLAG=true");
dartVmArgs.add("--dart-entrypoint-args=CUSTOM_TEST_FLAG=true");
dartVmArgs.add("--dart-entrypoint-args CUSTOM_TEST_FLAG=true");
FlutterEngine flutterEngine = new FlutterEngine(app, (String[]) dartVmArgs.toArray());
但是这些代码对我不起作用,也许像 flutter run --dart-define="CUSTOM_TEST_FLAG=true"
这样的启动应用程序会起作用,但这不符合我们的需求,我们希望在创建或启动 Flutter 引擎时传递该值
谢谢。
使用 const
关键字创建一个全局变量。
const test = String.fromEnvironment('test', defaultValue='defaultValue');
然后在 main.dart 文件中,您可以直接访问 test
变量。
虽然运行应用程序请使用
flutter run --dart-define=test=yourDataHere