electron 电子React在ipcMain和ipcRenderer中双向发送数据

fae0ux8s  于 2022-12-08  发布在  Electron
关注(0)|答案(1)|浏览(222)

我正在尝试在ipcMainipcRenderer之间创建电子通信。我正在使用electron react boilerplate
因此,第一步是将此部分添加到main:

app
  .whenReady()
  .then(() => {
    ipcMain.handle('dialog:openFile', () => {
      console.log('test');
    });

第二步是将其添加到preload文件中:

contextBridge.exposeInMainWorld('electronAPI', {
  openFile: () => ipcRenderer.invoke('dialog:openFile'),
});

第三步是我卡住的地方。我试图通过以下方式将其添加到react组分中:

await window.electronAPI.openFile();

但是我得到了Property 'electronAPI' does not exist on type 'Window & typeof globalThis'.错误。这里有什么问题?

ymdaylpp

ymdaylpp1#

Hello @Webby您确定preload文件已加载到browserWindow对象中吗?另外,您还必须将contextIsolation属性设置为True
像这样的东西

const win = new BrowserWindow(
{
  fullscreen: false,
  webPreferences: {
    contextIsolation: true,
    preload: path.join(__dirname, '../path/to/your/preload.js'),
  },
},

相关问题