ユーザー設定を保存する組み込みのメカニズムを見つけることができないようです。 electronがすべてのデスクトッププラットフォームでユーザー設定を保存する標準的な方法を提供することを望んでいました。これに先例がない場合、自分で実装できますが、すぐにカスタムソリューションにジャンプしたくありませんでした。この分野では、オンラインでの調査は非常にまばらです。ありがとう!
各プラットフォームには、異なる種類のデータの異なるデフォルトの場所があります。そのため、プラットフォームに基づいてデフォルトの場所にデータを保存する場合は、 app.getPath(name)
をチェックしてください。
name
に関連付けられた特別なディレクトリまたはファイルへのパスを取得します。
また、ユーザーが保存したいデータと、ユーザーのディレクトリを乱雑にしたくないアプリケーションが保存したデータを区別するのにも使用できます。
または、特定のパスにファイルを保存するだけの場合は、 app.setPath(name,path)
を使用できます
Electronアプリでこの特定の問題に直面したため、この投稿で electron-json-storage と呼ばれるNPMモジュールを記述しようと思いました。
このモジュールにより、app.getPath('userData')
との間でJSONを簡単に読み書きできます:
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
を使用します。ほとんどの場合、メインとレンダラーの両方でデータにアクセスする必要があるように思われるため、JSONファイルは理にかなっています。大量のデータや複雑なクエリを処理している場合は、データベースが理にかなっています。これについてもっと書いた 詳細はこちら 。
LocalStorageはどうですか?ブラウザプロセスからこれらの設定にアクセスする必要がある場合は、おそらく独自に記述する必要があります(または、これを実装するnode.jsライブラリを使用するだけです)
私が見つけた最良の方法は、JSONとして単純なファイルに保存することです。問題は、そのJSONをアプリのディレクトリに保存すると、アプリを更新するときに消去されることです。そのため、現在のオペレーティングシステムのユーザー設定のデフォルトディレクトリに配置する必要があります。ラッキー!!!!!ノード開発者向けのライブラリがあり、userdataディレクトリを見つけるのに役立ちます。モジュールはappdirectory
と呼ばれ、私はそれを数回使用しました。使い方は非常に簡単です。
APPDIRECTORY HERE を参照してください
Cookieにデータを保存できます。 Electronにはメカニズムがあり( https://electronjs.org/docs/api/cookies )、ブラウザでCookieを取得できます(Angular: https:// docs。 angularjs.org/api/ngCookies/service/ $cookies、React/Other: https://github.com/reactivestack/cookies )
私はそれをAngularjsで動作させることができました。