techium

このブログは何かに追われないと頑張れない人たちが週一更新をノルマに技術情報を発信するブログです。もし何か調査して欲しい内容がありましたら、@kobashinG or @muchiki0226 までいただけますと気が向いたら調査するかもしれません。

ElectronのBrowserWindowのライフサイクル

Electronアプリを作る際はBrowserWindowを使うことが多いと思います。
BrowserWindowは簡単にWebページをWindow内で表示することができるコンポーネントです。
そのためウィンドウアプリを作る際に必ず使う登竜門のような機能です。

このBrowserWindowの各種イベントがどのタイミング発生するかをまとめました。
また、BrowserWindowのライフサイクルはElectronのライフサイクルと密接な関係がありますので、Electronのライフサイクルを含めた形で紹介します。
Electronのライフサイクルについてはこちらを参照してください。

ライフサイクル

platform依存のイベントを除いたライフサイクルは次のようになります。 青色:BrowserWindowのイベント オレンジ色:appイベント

f:id:muchiki0226:20160313234846p:plain

イベントの詳細

各イベントの詳細は次の表のようになります。

イベント 詳細
page-title-updated ページのタイトルが変更された時のイベント
close Windowが閉じる時のイベント。閉じられる直前に呼び出される。
closed すべてのウィンドウを閉じたイベント。
unresponsive ウェブページのレスポンシブでない状態になる時のイベント
responsive ウェブページのレスポンシブ状態になる時のイベント
blur フォーカスが外れたイベント
focus フォーカスがあたったイベント
show ウィンドウが表示された時のイベント
hide ウィンドウが非表示された時のイベント
maximize 最大化された時のイベント
unmaximize 最大化を解除された時のイベント
minimize 最小化された時のイベント
restore 最小化から復帰した時のイベント
resize ウィンドウのサイズが変更された時のイベント
move ウィンドウ の位置を変更した時のイベント。位置が移動が終わったタイミングでイベントが発生する。
enter-full-screen ウィンドウをフルスクリーンにした時のイベント
leave-full-screen ウィンドウをフルスクリーンを解除した時のイベント
enter-html-full-screen HTMLでのフルスクリーンを要求した時のイベント
leave-html-full-screen HTMLでのフルスクリーン解除を要求した時のイベント

show、hide、unresponsive、responsiveはイベントとして定義されているがMacで動作確認したが、実動作では確認できませんでした。 特に注意するべきことはBrowserWindowのshowとhideを実行したとしてもイベントが発行されませんでしたので、API名とイベント名は紐付いていないので注意してください。

サンプルコード

動きを確認するサンプル

github.com