Создание электронного приложения с простым js. Я получил одно mainWindow с одним webContents (проверено с помощью webContents.getAllWebContents ()). В главном окне у меня есть два разных файла, один загружается с самого начала (mainWindow.js
) и другой, который загружается динамически (customerList.js
).
Итак, из основного процесса, который я запускаю mainWindow.webContents.send('customer:display', customerObject);
. Тогда в customerList.js
у меня есть
const customerElectron = require('electron');
customerElectron.ipcRenderer.on('customer:display', (e, customer) => {
console.log('customer: ', customer);
};
Это не называется. Чтобы проверить, вызывался ли он, я добавил то же самое к своему mainWindow.js
:
const mainElectron = require('electron');
mainElectron.ipcRenderer.on('customer:display', (e, customer) => {
console.log(customer, 'customer');
};
Это вызывается и регистрирует правильный объект клиента. Поскольку существует только один webContents, я бы предположил, что ipcRenderer просто добавляет к этому событие. Также я проверил, было ли добавлено событие, обернув слушателя в console.log(JSON.stringify(customerElectron.ipcRenderer))
. До того, как слушатель был создан, у него было 0 событий, затем у него было 1 событие. Поэтому код для добавления прослушивателя определенно называется.
Поскольку сценарий js относится к динамически загружаемому содержимому и в настоящее время необходимо загружать его после загрузки содержимого в DOM, я не могу просто добавить прослушиватели в мой mainWindow.js
. Есть ли решение этой проблемы? И вообще, является ли проблемой наличие нескольких файлов js для одного процесса рендеринга, а также нескольких электронов, требуемых в них?