electron 具有上下文隔离的电子持久化数据

2o7dmzc5  于 2022-12-16  发布在  Electron
关注(0)|答案(1)|浏览(192)

我刚接触Electron,正在寻找一种持久化用户数据的好方法。据我所知,由于上下文隔离的安全性影响,您不应该将NodeJ的功能暴露到渲染器进程中。
那么,实现一个共享的本地数据存储的最佳实践是什么,我可以在渲染器和(后台)主进程之间使用?只有主进程可以通过节点API访问文件系统,那么我是否总是必须通过调用preload脚本中暴露的依赖项从渲染器与存储交互?
理想情况下,我希望有一些像chrome.storage的扩展,我可以在两个过程中使用,但不确定这是否可能。任何输入是赞赏!

yjghlzjz

yjghlzjz1#

解决方案实际上取决于您希望持久化的数据类型...
如果它们只是程序的设置,你可以使用类似电子设置包的东西

const settings = require('electron-settings');

但是,信息存储在关联AppData文件夹中的纯文本JSON文件中。
然后使用IPC通道

const { ipcMain } = require('electron');

ipcMain.handle('myInvocationName', () => {
        return some_data;
});

用于从主进程到渲染器进程的通信。
相反,渲染器进程可以使用从主进程请求信息

const { ipcRenderer } = require('electron');

ipcRenderer.invoke('myInvocationName').then((returned_data) => {
    // do something with returned_data
});

相关问题