++++ 2019年7月更新++++
我写了一个包含Flutter Global Config的Package。
EZ Flutter是小部件,程序包和更多有用的东西的集合,它们混合在一个很小的框架中。目的是使标准功能从头开始可用。EZ Flutter支持管理可在应用程序内部访问的不同配置文件。
GitHub:https : //github.com/Ephenodrom/EZ-Flutter
dependencies:
ez_flutter: ^0.2.0
查看文档,了解如何使用不同的配置。
https://github.com/Ephenodrom/EZ-Flutter/blob/master/documentation/APPLICATION_SETTINGS.md
++++旧答案++++
我对全局变量也有同样的问题。因此,我还需要为每个应用程序版本(dev / prod)使用不同的配置,并且我不想在main_dev.dart或main_prod.dart文件中写入配置。
我写了一个简单的flutter程序包,处理单独的配置文件并在应用程序启动时加载它们。然后,可以在应用程序的每一行代码中使用该配置。
https://github.com/Ephenodrom/Flutter-Global-Config
如何使用它 :
在assets / cfg / $ file.json下创建一个json文件
将资产/ cfg添加到您的pubspec.yaml
在应用启动时加载不同的配置文件:
import 'package:flutter/material.dart';
import 'package:global_configuration/global_configuration.dart';
void main() async{
await GlobalConfiguration().loadFromAsset("app_settings");
await GlobalConfiguration().loadFromAsset("env_dev_settings");
runApp(MyApp());
}
class MyApp extends StatelessWidget {
...
}
在您的应用中使用配置:
import 'package:flutter/material.dart';
import 'package:global_configuration/global_configuration.dart';
class CustomWidget extends StatelessWidget {
CustomWiget(){
print(GlobalConfiguration().getString("key1");
}
@override
Widget build(BuildContext context) {
return new Text(GlobalConfiguration().getString("key2"));
}
}