gas*_*ard 30 javascript electron
我想要一个菜单,在主进程中定义,在原子/电子应用程序的当前浏览器窗口中调用JS代码.
从浏览器窗口获取主进程全局变量是
const remote = require('remote')
const foo = remote.getGlobal('foo')
Run Code Online (Sandbox Code Playgroud)
主进程(即获取当前窗口全局变量)的等价物是什么.这就是我想在伪代码中做的事情
// JS inside main process
const BrowserWindow = require('browser-window')
//...
// Inside the menu callback
let window = BrowserWindow.getFocusedWindow()
let commander = window.global('commander') /// <---- PSEUDO-CODE !!!
commander.handleCommand('File.Save')
Run Code Online (Sandbox Code Playgroud)
Jos*_*osh 36
以下是对api中webContents流程的评论,在遥控器下的"注意:"中.
但是,如果您只想触发一个函数,您还可以使用webContents.send()和ipc(主进程)进程来触发运行的相应代码.像这样......
// JS inside main process
const window = require('electron').BrowserWindow;
ipc.on('menuItem-selected', function(){
let focusedWindow = window.getFocusedWindow();
focusedWindow.webContents.send('file-save');
});
// Inside the menu callback
require('ipc').on('file-save', function() {
// File save function call here
});
Run Code Online (Sandbox Code Playgroud)
对于Electron版本0.35.0及更高版本,ipc api更改为以下内容:
// In main process.
const ipcMain = require('electron').ipcMain;
// In renderer process (web page).
const ipcRenderer = require('electron').ipcRenderer;
Run Code Online (Sandbox Code Playgroud)