私たちのウィンドウには終了ボタンがなく、window-all... ノート

私たちのウィンドウには終了ボタンがなく、window-all-closed は空の関数です。

Notifioは、新しい賃貸物件のリスティングを電子メールでユーザーに即座に通知するように設計されたデスクトップアプリケーションです。そのコアバリューは、継続的な動作にあり、予期せず停止してはならないことを意味します。最後のウィンドウを閉じるとアプリが終了するというElectronのデフォルトの動作は、この要件と互換性がありません。したがって、Notifioはカスタムライフサイクルを実装し、メインウィンドウが閉じられた場合でもアプリケーションがシステムトレイでアクティブなままであることを保証します。ブールフラグは、ウィンドウを閉じたときにそれを非表示にするか、アプリケーションを終了するかを制御し、誤った終了を防ぎます。トレイアイコンは、アプリケーションを終了するための唯一のインターフェースとなり、実行中であることをユーザーに通知します。トレイアイコンをクリックすると、メインウィンドウの表示/非表示が切り替わります。非表示がデフォルトの状態です。アプリケーションはまた、重複したプロセスを防ぐために単一インスタンスロックを強制します。これにより、非効率的なポーリングと競合状態が発生します。実行中のアプリを再度起動しても、新しいインスタンスを開始するのではなく、非表示のウィンドウが前面に表示されるだけです。スリープモードは、Electron内のブラウザコンテキストがサスペンション後に無効になる可能性があるため、課題となります。Notifioは、システムがスリープする前にこれらのコンテキストを積極的に閉じ、復帰時に再初期化されることを保証します。外部ウェブサイトがNotifio自身のブラウザインスタンス内で開かれるのを防ぐために、ハンドラーを使用してすべての外部リンクをユーザーのデフォルトブラウザにリダイレクトします。これは賃貸サイトにとって重要です。認証されていないブラウジングはログインウォールにつながるためです。起動時の失敗の場合、パッケージ化されたアプリではより一般的ですが、Notifioはエラーの詳細とログファイルへのリンクを含む簡略化されたフォールバックウィンドウを表示します。このウィンドウは意図的に基本的であり、トラブルシューティングを支援するために不可欠な情報のみを含んでいます。キャッチされない例外と処理されない拒否は、包括的なエラー追跡を保証するためにログに記録されます。アプリケーションは、異なるオペレーティングシステム用に個別のビルドを提供し、トレイの動作とバックグラウンドポーリングをユーザーに明確に説明します。