setup.dart 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import 'package:fis_common/env/env.dart';
  2. import 'package:flutter/foundation.dart';
  3. ///服务构建管道函数的声明
  4. typedef ServiceBuilderPipe = Future<void> Function();
  5. /// 服务装载器
  6. class ServiceSetup {
  7. static bool _installed = false;
  8. /// 构建装载
  9. ///
  10. /// [builder] 全局构建管道
  11. ///
  12. /// [webBuilder] 纯web端构建管道
  13. ///
  14. /// [shellBuilder] 套壳Web构建管道
  15. ///
  16. /// [nativeBuilder] 原生应用构建管道
  17. Future<void> build({
  18. required ServiceBuilderPipe builder,
  19. ServiceBuilderPipe? webBuilder,
  20. ServiceBuilderPipe? shellBuilder,
  21. ServiceBuilderPipe? nativeBuilder,
  22. }) async {
  23. if (_installed) return;
  24. await builder();
  25. if (kIsWeb) {
  26. if (FPlatform.isPureWeb) {
  27. if (webBuilder != null) {
  28. await webBuilder();
  29. }
  30. } else {
  31. if (shellBuilder != null) {
  32. await shellBuilder();
  33. }
  34. }
  35. } else {
  36. if (nativeBuilder != null) {
  37. await nativeBuilder();
  38. }
  39. }
  40. _installed = true;
  41. }
  42. }