gpt4 book ai didi

electron - Electron 预加载器脚本中的访问路径如何?

转载 作者:行者123 更新时间:2023-12-05 04:41:10 30 4
gpt4 key购买 nike

在我的 Electron 应用程序中,我使用“electron-json-storage”模块在本地存储一些设置数据。
但是,为了访问这些数据,我必须先找到本地路径。
为此,我正在使用 app.getPath('userData'));。您可以看到我的预加载器脚本如下所示:

const { contextBridge, ipcRenderer, app } = require('electron');
let os = require("os");
contextBridge.exposeInMainWorld('electron', {
ipcRenderer: {
myPing() {
ipcRenderer.send('ipc-example', 'ping');
},
on(channel, func) {
const validChannels = ['ipc-example',];
if (validChannels.includes(channel)) {
ipcRenderer.on(channel, (event, ...args) => func(...args));
}
},
once(channel, func) {
const validChannels = ['ipc-example'];
if (validChannels.includes(channel)) {
ipcRenderer.once(channel, (event, ...args) => func(...args));
}
},
},
os:{
cpuCount: os.cpus().length,
},
storage:{
localPath: app.getPath('userData'),
},

});

不幸的是,应用程序似乎无法在预加载器脚本中访问,因为开发工具显示以下错误:

Uncaught Error: Cannot read property 'getPath' of undefined

我是否需要使用预加载的 ipc 事件从主脚本发送应用程序路径,或者是否有任何方法可以在预加载器本身中访问它?

谢谢!

最佳答案

问题是 app 模块仅限于主进程。由于预加载脚本已经在渲染器中运行,您无法访问 app 并且必须通过 IPC 向主进程询问路径。

作为旁注,最好只使用一次 IPC(当你的预加载脚本被初始化时,所以在你定义你的主要世界函数之前)并缓存主进程返回的结果。

关于electron - Electron 预加载器脚本中的访问路径如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70128363/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com