Electron + node.jsで作成したアプリで永続化する(Windows)
Windowsアプリの設定をどこかに永続化したい場合、electron-storeをインストールして永続化することが出来ます。
例えばWindowsの終了時の縦横のサイズを次回起動時覚えておきたい、という場合です。
このような情報を永続化する場合にはelectron-storeをインストールします。
1 |
npm i --save electron-store |
メインプロセス(main.js)の先頭で以下2行を書いておきます。
1 2 |
const Store = require('electron-store') const store = new Store() |
永続化
永続化するには
1 |
store.set('キー',保存したい値) |
とします。これで、store.path
にconfig.jsonファイルが作成され、JSON形式で保存されます。
config.jsonの場所は、C:\Users\<ユーザ名>\AppData\Roaming\<プロジェクト名>\config.json
です。
永続化した値を取得
永続化した値を取得するには
1 |
store.get('キー',デフォルト値) |
とします。キーに一致する値がない場合、第二引数のデフォルト値となります。
enableRemoteModule: true
Electron v10以降で永続化する場合、BrowserWindowにenableRemoteModule: trueを設定しておかないと永続化することが出来ません。
BrowserWindowインスタンスのclose
でウィンドウズ終了時に高さと幅を保存し、ウィンドウズのインスタンス生成時に高さと幅をstoreから取得するようにすればウィンドウサイズを記憶できるようになります。
const Store = require('electron-store') | |
const store = new Store() | |
function createWindow () { | |
const win = new BrowserWindow({ | |
width: store.get('width',800), // 永続化されていたらその値を、されていなければデフォルト値 | |
height: store.get('height',600), // 永続化されていたらその値を、されていなければデフォルト値 | |
center: true, | |
resizable: true, | |
webPreferences: { | |
nodeIntegration: true, | |
enableRemoteModule: true, // 永続化 | |
} | |
}) | |
win.on('close',()=> { | |
store.set('width', win.getSize()[0]) // widthを永続化 | |
store.set('height', win.getSize()[1]) // heightを永続化 | |
}) | |
} |
次回は通知について実装してみたいと思います。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^