我在main.js中创建了2个窗口
app.on('ready', () => {
mainWindow = new BrowserWindow({
width: mainWindowState.width,
height: mainWindowState.height,
minWidth: 800,
minHeight: 600,
x: mainWindowState.x,
y: mainWindowState.y,
});
mainWindow.loadURL(`file://${__dirname}/index.html`);
playerWindow = new BrowserWindow({
width: playerWindowState.width,
height: playerWindowState.height,
minWidth: 800,
minHeight: 600,
x: playerWindowState.x,
y: playerWindowState.y,
});
现在我试图从控制器访问playerWindow。 我使用了远程,全局,不同的接近但我无法从控制器访问main.js上定义的全局窗口数组,因此我仍然不知道如何访问playerWindow以便能够执行此操作:< / p>
playerWindow.location.href = '#/player';
有什么想法吗?谢谢!
答案 0 :(得分:0)
可以使用IPC实现此任务。
在控制器上添加:
const {ipcRenderer} = require('electron');
$scope.openPlayer = function () {
$scope.playerOpen = true;
ipcRenderer.send('open-player-window', 'an-argument');
};
$scope.closePlayer = function () {
$scope.playerOpen = false;
ipcRenderer.send('close-player-window', 'an-argument');
};
在main.js上
const {app, BrowserWindow, electron, ipcMain} = require('electron');
app.on('ready', () => {
mainWindow = new BrowserWindow(etc... //
ipcMain.on('close-player-window', (event, arg) => {
playerWindow.setClosable(true);
playerWindow.hide();
});
ipcMain.on('open-player-window', (event, arg) => {
playerWindow = new BrowserWindow({etc...});
playerWindow.loadURL(`file://${__dirname}/index.html#/player`);
playerWindow.setClosable(false);
playerWindow.setMinimizable(false);
});