app_parameters.dart 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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 =
  29. "https://platform.xinglinghui.com:9400"; // TODO:
  30. static const C_HOME_PAGE_URL = "http://192.168.6.80:8408"; // TODO:
  31. static const C_LOCAL_STATION = false;
  32. AppParameterDataModel({
  33. this.serverGateway = C_DEFAULT_GATEWAY,
  34. this.homePageUrl = C_HOME_PAGE_URL,
  35. this.isLocalStation = C_LOCAL_STATION,
  36. });
  37. factory AppParameterDataModel.fromJson(Map<String, dynamic> map) {
  38. final serverGetway = map['server_gateway'] ?? C_DEFAULT_GATEWAY;
  39. final homePageUrl = map['home_page_url'] ?? C_HOME_PAGE_URL;
  40. final isLocalStation = map['local_station'] ?? C_LOCAL_STATION;
  41. return AppParameterDataModel(
  42. serverGateway: serverGetway,
  43. homePageUrl: homePageUrl,
  44. isLocalStation: isLocalStation,
  45. );
  46. }
  47. String serverGateway;
  48. String homePageUrl;
  49. ///是否本地工作站,默认false,如果设置为true,将会在App启动时轮询调用成功Server的接口才会进行登录,否则将会一直处于Splash页面
  50. bool isLocalStation;
  51. }