2016-03-05 2 views
1

Я пытаюсь сделать простой ipc.send и ipc.on, но по какой-то причине я получаю неопределенный запрос на этот электрон.Электронный запрос ipcRenderer не работает

ЛИЭС/заказной-menu.js:

'use-strict'; 

const BrowserWindow = require('electron').BrowserWindow; 
const ipcRenderer = require('electron').ipcRenderer; 

exports.getTemplate = function() { 
    const template = [ 
    { 
     label: 'Roll20', 
     submenu: [ 
     { 
      label: 'Player Handbook', 
      click() { 
      console.log('test'); 
      }, 
     }, 
     ], 
    }, 
    { 
     label: 'View', 
     submenu: [ 
     { 
      label: 'Toggle Fullscreen', 
      accelerator: 'F11', 
      click(item, focusedWindow) { 
      if (focusedWindow) { 
       focusedWindow.setFullScreen(!focusedWindow.isFullScreen()); 
      } 
      }, 
     }, 
     { 
      label: 'Toggle Developer Tools', 
      accelerator: (function() { 
      if (process.platform === 'darwin') { 
       return 'Alt+Command+I'; 
      } 
      return 'Ctrl+Shift+I'; 
      }()), 
      click(item, focusedWindow) { 
      if (focusedWindow) { 
       focusedWindow.toggleDevTools(); 
      } 
      }, 
     }, 
     { 
      label: 'Reload', 
      accelerator: 'F5', 
      click() { 
      BrowserWindow.getFocusedWindow().reloadIgnoringCache(); 
      }, 
     }, 
     ], 
    }, 
    { 
     label: 'Random Generators', 
     submenu: [ 
     { 
      label: 'World Generator', 
      click() { 
      ipcRenderer.send('show-world'); 
      }, 
     }, 
     ], 
    }, 
    ]; 
    return template; 
}; 

Ошибка является не может прочитать свойство 'отправить' из неопределенных.

ответ

2

Модуль BrowserWindow доступен только в основном процессе, модуль ipcRenderer доступен только в процессе рендеринга, поэтому независимо от того, в каком процессе вы запускаете этот код, он не будет работать. Я предполагаю, что с ipcRenderer недоступен, вы пытаетесь запустить этот код в основном процессе.

Смежные вопросы