app_parameters.dart 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import 'dart:convert';
  2. import 'package:fis_common/logger/logger.dart';
  3. import 'package:flutter/services.dart';
  4. /// 应用参数(随编译引入)
  5. class AppParameters {
  6. static const _path = "assets/app_params.json";
  7. static late final AppParameterDataModel _data;
  8. static bool _hasLoaded = false;
  9. /// 数据内容
  10. static AppParameterDataModel get data => _data;
  11. /// 加载预置参数数据
  12. static Future<void> load() async {
  13. if (_hasLoaded) return;
  14. try {
  15. final dynamic jsonMap;
  16. final json = await rootBundle.loadString(_path, cache: false);
  17. jsonMap = jsonDecode(json);
  18. _data = AppParameterDataModel.fromJson(jsonMap);
  19. } catch (e) {
  20. logger.e("Load AppConfig error.", e);
  21. _data = AppParameterDataModel();
  22. }
  23. _hasLoaded = true;
  24. }
  25. }
  26. class AppParameterDataModel {
  27. // ignore: constant_identifier_names
  28. static const C_DEFAULT_GATEWAY = "http://192.168.6.80:8400"; // TODO:
  29. static const C_HOME_PAGE_URL = "http://192.168.6.80:8408"; // TODO:
  30. AppParameterDataModel({
  31. this.serverGateway = C_DEFAULT_GATEWAY,
  32. this.homePageUrl = C_HOME_PAGE_URL,
  33. });
  34. factory AppParameterDataModel.fromJson(Map<String, dynamic> map) {
  35. return AppParameterDataModel(
  36. serverGateway: map['server_gateway'] ?? C_DEFAULT_GATEWAY,
  37. homePageUrl: map['home_page_url'] ?? C_HOME_PAGE_URL,
  38. );
  39. }
  40. String serverGateway;
  41. String homePageUrl;
  42. }