从控制器访问其中一个打开的窗口

时间:2017-08-17 17:48:59

标签: angularjs electron

我在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';

有什么想法吗?谢谢!

1 个答案:

答案 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);


});
相关问题