1

我想将一些参数传递mainmain.dart.

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 引擎时传递该值

谢谢你。

4

1 回答 1

2

const用关键字创建一个全局变量。

const test = String.fromEnvironment('test', defaultValue='defaultValue');

然后在 main.dart 文件中,您可以test轻松地直接访问变量。

在运行应用程序时请使用

flutter run --dart-define=test=yourDataHere

有关更多信息,请参阅此链接https://itnext.io/flutter-1-17-no-more-flavors-no-more-ios-schemas-command-argument-that-solves-everything-8b145ed4285d

于 2021-12-15T14:48:41.903 回答