++++ 2019年7月更新 ++++
我编写了一个集成Flutter全局配置的包。
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 文件。
将 assets/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"));
}
}
library my_prj.globals
在globals.dart
文件中是做什么用的? - Fadhil Ahmad