DEV Community на русском
Подписаться
В нашем окне нет кнопки выхода, а window-all-closed — пустая функция.
Notifio — это настольное приложение, предназначенное для мгновенного уведомления пользователей о новых объявлениях об аренде по электронной почте. Его основная ценность заключается в непрерывной работе, что означает, что оно никогда не должно останавливаться неожиданно. Поведение Electron по умолчанию, при котором закрытие последнего окна завершает работу приложения, несовместимо с этим требованием. Поэтому Notifio реализует пользовательский жизненный цикл, гарантируя, что приложение остается активным в системном трее, даже когда его главное окно закрыто. Булевый флаг контролирует, скрывает ли закрытие окна приложение или завершает его работу, предотвращая случайное завершение. Значок в трее становится единственным интерфейсом для завершения работы приложения и информирует пользователей о том, что оно все еще работает. Щелчок по значку в трее переключает видимость главного окна, поскольку скрытие является состоянием по умолчанию.Приложение также обеспечивает блокировку единственного экземпляра, чтобы предотвратить дублирование процессов, что привело бы к неэффективному опросу и конфликтующим состояниям. Повторный запуск приложения, когда оно уже работает, просто выводит скрытое окно на передний план, а не запускает новый экземпляр. Режим сна представляет собой проблему, поскольку контексты браузера в Electron могут стать недействительными после приостановки. Notifio проактивно закрывает эти контексты перед переходом системы в спящий режим, гарантируя их повторную инициализацию при возвращении.Чтобы предотвратить открытие внешних веб-сайтов в собственном экземпляре браузера Notifio, он использует обработчики для перенаправления всех внешних ссылок в браузер пользователя по умолчанию. Это крайне важно для сайтов аренды, поскольку просмотр без аутентификации привел бы к стенам входа. В случае сбоев при запуске, которые чаще встречаются в упакованных приложениях, Notifio отображает упрощенное резервное окно с деталями ошибки и ссылкой на файл журнала. Это окно намеренно базовое, содержащее только необходимую информацию для помощи в устранении неполадок. Неперехваченные исключения и необработанные отклонения регистрируются для обеспечения всестороннего отслеживания ошибок. Приложение предоставляет отдельные сборки для разных операционных систем и четко объясняет пользователям поведение трея и фоновый опрос.