feat(desktop): 增加桌面端系统托盘和窗口管理功能

- 主函数中添加窗口管理初始化,支持Windows、Linux和MacOS平台
- HomeScreen中集成托盘服务和窗口服务,实现托盘菜单交互
- 实现窗口关闭时弹出对话框,支持最小化到托盘或退出程序
- 添加托盘服务TrayService,封装系统托盘图标和菜单的初始化、事件处理
- 添加窗口服务WindowService,实现窗口的显示、隐藏、关闭及事件监听
- 在界面添加最小化到托盘的按钮,仅桌面端显示
- pubspec.yaml添加assets目录,包含托盘图标资源文件
This commit is contained in:
2025-12-08 09:13:59 +08:00
parent 6a0d84f063
commit df266614e1
6 changed files with 308 additions and 5 deletions

View File

@@ -1,9 +1,19 @@
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'providers/providers.dart';
import 'screens/screens.dart';
import 'services/services.dart';
void main() {
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化窗口管理(仅桌面端)
if (!kIsWeb && (Platform.isWindows || Platform.isLinux || Platform.isMacOS)) {
await WindowService().init();
}
runApp(const HomeMonitorApp());
}