tray_manager icon indicating copy to clipboard operation
tray_manager copied to clipboard

onTrayMenuItemClick 事件失效

Open Muska-Ami opened this issue 5 months ago • 0 comments

环境信息

  • OS: Windows 11 23H2 22631.4112
  • Flutter:
    [√] Flutter (Channel stable, 3.24.3, on Microsoft Windows [版本 10.0.22631.4112], locale zh-CN)
    [√] Windows Version (Installed version of Windows is version 10 or higher)
    [√] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    [X] Chrome - develop for the web (Cannot find Chrome executable at .\Google\Chrome\Application\chrome.exe)
        ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
    [√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.10.6)
    [√] Android Studio (version 2024.1)
    [√] IntelliJ IDEA Community Edition (version 2024.2)
    [√] Connected device (2 available)
    [√] Network resources
    

代码

初始化

class _AppState extends State<App> with WindowListener, TrayListener {
  /// 根组件
  @override
  Widget build(BuildContext context) {
    ThemeData themeData = ThemeControl().getTheme();

    final app = GetMaterialApp(
      // ...
    );
    _appInit = true;
    return app;
  }

  /// 组件初始化时操作
  @override
  void initState() {
    trayManager.addListener(this);
    windowManager.addListener(this);
    super.initState();
    _init();
  }

  /// 异步初始化内容
  Future<void> _init() async {
    await windowManager.setPreventClose(true);
    setState(() {});
  }

  /// 组件销毁时操作
  @override
  void dispose() {
    windowManager.removeListener(this);
    trayManager.removeListener(this);
    super.dispose();
  }

  // ...

  @override
  onTrayMenuItemClick(MenuItem menuItem) => MainTray.onTrayMenuItemClick(menuItem);
}

MainTray.onTrayMenuItemClick(MenuItem menuItem)

/// 托盘菜单点击事件
static void onTrayMenuItemClick(MenuItem menuItem) {
  // 这里的 Logger 没有任何输出,说明根本没有被触发
  Logger.info(menuItem.key);
  switch (menuItem.key) {
    case 'show_window':
      appWindow.show();
      break;
    case 'hide_window':
      appWindow.hide();
      break;
    case 'restore_window':
      appWindow.restore();
      break;
    case 'app_force_update':
      Get.forceAppUpdate();
      // appWindow.show();
      break;
    case 'exit_app':
      appWindow.show();
      MainWindow.onWindowClose();
      break;
  }
}

Muska-Ami avatar Sep 14 '24 04:09 Muska-Ami