node.js - Problèmes de communication entre le thread principal d'Electron et le thread de rendu (comment l'événement Menubar obtient les données du thread de rendu)
大家讲道理
大家讲道理 2017-07-03 11:42:13
0
2
1269

Bonjour à tous :

J'utilise electron pour écrire une application similaire à un éditeur. Il y a une fonction d'enregistrement de fichier dans la barre de menu de l'application :

Parce que la barre de menus est dans le fil de rendu principal, mais l'opération de sauvegarde doit obtenir le contenu dans un éditeur dans le fil de rendu. Le site officiel ne contient que des exemples de fil de rendu demandant le fil de rendu principal (ipcMain和ipcRenderer),但是ipcMain好像不能主动请求ipcRenderer.

).

Je voudrais donc demander à tout le monde, comment le thread principal peut-il demander activement au thread de rendu d'appeler la méthode du thread de rendu ou de déclencher l'événement du thread de rendu ?

Merci !

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(2)
曾经蜡笔没有小新

J'ai trouvé la solution ^_^

Dans l'événement ipcMainipcRenderer中同时监听两个相同名字的事件,然后在主线程中使用focusedWindow.webContents.send('save-file')触发ipcRenderersave-file事件,在ipcRenderersave-file事件中请求ipcMainsave-file et emportez les données correspondantes

ipcMain :

ipcMain.on('save-file' ,(event ,arg) => {
    console.log(arg)
})

ipcRenderer :

ipcRenderer.on('save-file' ,(event ,arg) => {
  ipcRenderer.send('save-file' ,'test')
})
巴扎黑

Vous pouvez d'abord lier un événement au fil de rendu, par exemple, diffuser l'événement dans la fonction ipcRenderer.on('save', save);,然后在用户点击菜单中的 Save 时触发这个事件,然后在 save et transmettre les données dont vous avez besoin.

C’est un peu compliqué, mais c’est tout ce à quoi je peux penser pour l’instant.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal