【问题标题】:Accesing one of the opened windows from a controller从控制器访问打开的窗口之一
【发布时间】:2018-01-26 06:29:09
【问题描述】:

我在 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 才能做到这一点:

playerWindow.location.href = '#/player';

有什么想法吗?谢谢!

【问题讨论】:

    标签: angularjs electron


    【解决方案1】:

    这个任务可以使用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);
    
    
    });
    

    【讨论】:

      猜你喜欢
      • 2018-09-26
      • 2019-06-13
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      相关资源
      最近更新 更多