私のプログラムのメイン ウィンドウには、クリックすると新しい追加のウィンドウを作成するボタンがあります。この新しいウィンドウの読み込みが完了したら、メッセージを送信したいと思いますipcRenderer
。ただし、ipcRenderer
ウィンドウが正常に作成されたにもかかわらず、これまでのところメッセージを受信できるようにすることはできませんでした。
のコードのスニペットを次に示しますmain.js
。
const { ipcMain } = require('electron');
ipcMain.handle('open-window', () => {
const newWindow = createWindow();
newWindow.on('did-finish-load', () => {
newWindow.webContents.send('opened-window');
});
});
createWindow
は、ブラウザ ウィンドウを作成して返す関数であることに注意してください。
のコードのスニペットを次に示しますpreload.js
。
const { ipcRenderer } = require('electron');
window.addEventListener('DOMContentLoaded', () => {
document.getElementById('openWindow').addEventListener('click', () => {
ipcRenderer.invoke('open-window');
});
});
ipcRenderer.on('opened-window', () => {
console.log('received message!')
})
ご覧のとおりreceived message!
、新しいウィンドウの読み込みが完了した後、コンソールで文字列を受け取ることを期待しています。ただし、これは起こっていません。私は何を間違っていますか?