Chrome はウィンドウを閉じた時のサイズとポジションを覚えてくれているので Electron でもそういう API があると期待したけれど,無かった ので自前実装したメモ.
アプリが終了する時にファイルに書き出す.ファイルはユーザデータのディレクトリあたりに適当な名前で保存する.
var info_path = path.join(app.getPath("userData"), "bounds-info.json");
ウィンドウを作成する際に保存された情報を読みに行き,あればそれを使うようにする.
var bounds_info;
try {
bounds_info = JSON.parse(fs.readFileSync(info_path, 'utf8'));
}
catch(e) {
bounds_info = {width: 800, height: 1000}; // デフォルトバリュー
}
mainWindow = new BrowserWindow(bounds_info);
最後に,ウィンドウを閉じる直前にファイルにウィンドウのサイズと位置を保存する.
mainWindow.on('close', function() {
fs.writeFileSync(info_path, JSON.stringify(mainWindow.getBounds()));
});
書き込むのはウィンドウを閉じる直前のイベントである close
であり,closed
ではないことに注意.