http_provider_injection.dart 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import 'package:domain/constants/api_constants.dart';
  2. import 'package:plugin_basic/constants/app_constant.dart';
  3. import 'package:plugin_platform/engine/sp/sp_util.dart';
  4. import 'package:plugin_platform/http/http_provider.dart';
  5. import '../basic_export.dart';
  6. import '../dio_interceptors/interceptor_auth_dio.dart';
  7. import '../dio_interceptors/interceptor_status_code_dio.dart';
  8. class HttpProviderInjection {
  9. // 设置默认的
  10. static void putHttpProviderByCountry() {
  11. //根据选中的国家赋值Api
  12. String baseUrl;
  13. int country = SPUtil.getInt(AppConstant.storageSelectedCountry, defValue: 1) ?? 1;
  14. if (country == 1) {
  15. //新加坡
  16. baseUrl = ApiConstants.sgBaseUrl;
  17. } else if (country == 2) {
  18. //英国
  19. baseUrl = ApiConstants.ukBaseUrl;
  20. } else if (country == 3) {
  21. //马来西亚
  22. baseUrl = ApiConstants.msBaseUrl;
  23. } else if (country == 4) {
  24. //荷兰
  25. baseUrl = ApiConstants.nlBaseUrl;
  26. } else if (country == 5) {
  27. //泰国
  28. baseUrl = ApiConstants.thBaseUrl;
  29. } else {
  30. //默认越南
  31. baseUrl = ApiConstants.vnBaseUrl;
  32. }
  33. //注入 HttpProvider
  34. Get.put(
  35. HttpProvider(
  36. baseUrl,
  37. interceptors: [StatusCodeDioInterceptors(), AuthDioInterceptors()], //需要加上与App关联的一些拦截处理
  38. ),
  39. permanent: true);
  40. }
  41. // 切换应用的BaseUrl的逻辑
  42. static void switchBaseUrl(String baseUrl) {
  43. //找到单例对象 HttpProvider,切换域名
  44. HttpProvider httpProvider = Get.find();
  45. httpProvider.switchBaseUrl(baseUrl);
  46. }
  47. }