ユーザー設定を保存する組み込みのメカニズムが見つからないようです。私は、electron がすべてのデスクトップ プラットフォームでユーザー設定を保存するための標準的な方法を提供することを望んでいました。前例がない場合は自分で実装できますが、すぐにカスタム ソリューションに飛びつきたくありませんでした。この分野では、オンラインでの調査はかなりまばらです。ありがとう!
6 に答える
私は自分の Electron アプリでこの特定の問題に直面しており、この投稿をきっかけにelectron-json-storageという NPM モジュールを作成しました。
このモジュールを使用すると、JSON との間で簡単に JSON を読み書きできますapp.getPath('userData')
。
const storage = require('electron-json-storage');
// Write
storage.set('foobar', { foo: 'bar' }).then(function() {
// Read
storage.get('foobar').then(function(object) {
console.log(object.foo);
// will print "bar"
});
});
Electron は、このためにすぐに使用できるものは何も提供しません。ただし、Electron はapp.getPath APIを介してクロスプラットフォームの方法でユーザー データを保存する慣用的な場所を取得する方法を提供します。
これを行う最も一般的な3つの方法は次のとおりです。
- localStorage (または任意の HTML5 ストレージ API)
- フラット JSON ファイル (これは私が行っていることであり、electron-storeを使用しています)
- IndexedDB、neDB、sqlite などの組み込みデータベース
どちらを選択するかは、アプリのニーズによって異なります。レンダラー プロセスでこのデータにアクセスするだけでよい場合は、localStorage
. ほとんどの場合、メインとレンダラーの両方でデータにアクセスする必要があるように思われるため、JSON ファイルは理にかなっています。大量のデータや複雑なクエリを扱っている場合は、データベースが理にかなっています。これについては、こちらに詳しく書きました。
LocalStorage はどうですか? ブラウザ プロセスからこれらの設定にアクセスする必要がある場合は、おそらく独自の設定を作成する必要があります (または、これを実装する node.js ライブラリを使用するだけです)。