Electron window.webContents.send не работает - PullRequest
1 голос
/ 06 октября 2019

main.js

mainWindow = new BrowserWindow({ show: false, minWidth: 400, minHeight: 400, webPreferences: {nodeIntegration: true} });
mainWindow.maximize();
mainWindow.loadURL(url.format({
    pathname: path.join(__dirname, '/html/index.html'),
    protocol: 'file:',
    slashes: true
}));
mainWindow.on('closed', function(){
    app.quit();
});
const mainMenu = Menu.buildFromTemplate(mainMenuTemplate);
Menu.setApplicationMenu(mainMenu);

mainWindow.once('ready-to-show', () => {
    mainWindow.show();
    const data = {id: 'checking_for_updates', display: 'none'}
    console.log(data)
    mainWindow.webContents.send('change_display', data) 
}) 

index.html

<script>
    const electron = require('electron');
    const ipcRenderer = electron.ipcRenderer;
    ipcRenderer.on('change_display', function (event, data) {
        console.log(data);
        document.getElementById(data.id).style.display=data.display;
    })
</script>
<body>
    <!-- Checking if you can update -->
    <div class="container updating"  id="checking_for_updates" style="display: block">
        <h1 class="updating-text">Checking for updates.</h1>
    </div>

регистрирует только «данные» один раз, поэтому, вероятно, ipcRenderer не запускает событие ipcRenderer.on change_display. Как бы я исправить эту проблему?

1 Ответ

0 голосов
/ 08 октября 2019

Ваш код здесь:

mainWindow.once('ready-to-show', () => {
    mainWindow.show();
    const data = {id: 'checking_for_updates', display: 'none'}
    console.log(data)
    mainWindow.webContents.send('change_display', data) 
})

отправляет change_display только один раз. И так вы увидите data зарегистрировано один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...