import 'dart:async'; import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:flutter_subscreen_plugin/flutter_subscreen_plugin.dart'; import 'package:get/get.dart'; import 'package:pj_supermarket_cloud/app.dart'; import 'package:pj_supermarket_cloud/common/index.dart'; import 'package:pj_supermarket_cloud/sub_screen/page/index.dart'; void main() { checkSubScreen(); } Future checkSubScreen() async { print("当前的屏幕${window.defaultRouteName}"); switch (window.defaultRouteName) { case "/": WidgetsFlutterBinding.ensureInitialized(); DartPluginRegistrant.ensureInitialized(); await AppRuntimeTool.initializePlatform(); final appTheme = Get.put(AppThemeControl()); // 全局餐段状态供商品管理和取餐广播任务读取。 final productHourType = Get.put( ProductHourTypeControl(), permanent: true, ); // 管理操作临时解锁会话,供终端顶栏安全锁倒计时读取。 Get.put(TerminalAdminSessionControl(), permanent: true); // 睡眠状态需要跨终端工作区路由常驻,但不会进入副屏 Engine。 Get.put(TerminalSleepControl(), permanent: true); // 终端顶栏五设备逐项显隐偏好,常驻供外壳读取。 final terminalDeviceStatus = Get.put( TerminalDeviceStatusControl(), permanent: true, ); // 人脸识别会话服务常驻,供收银识别流程和空闲判定读取。 Get.put(FaceRecognitionSessionService(), permanent: true); runApp(MainApp()); await Future.microtask(() async { final app = Get.put(AppControl()); await app.initAsync(); await appTheme.initAsync(); await productHourType.initAsync(); await terminalDeviceStatus.initAsync(); }); break; case "subMain": WidgetsFlutterBinding.ensureInitialized(); DartPluginRegistrant.ensureInitialized(); bool isMultipleScreen = await SubScreenPlugin.isMultipleScreen; bool isOverlay = await SubScreenPlugin.checkOverlayPermission; if (isMultipleScreen && isOverlay) { runApp(SubAppPage()); SubScreenPlugin.doubleScreenShow(); } break; } }