window.maximize() 在 window 最小化时失败 electron

window.maximize() fails when window is minimized electron

我创建了一个带有托盘图标的电子应用程序。 当我右键单击托盘图标时,我会显示一个包含 4 个选项的菜单:

这是创建托盘图标的代码:

    trayIcon = new Tray('icons/foo.png');
    const trayMenuTemplate = [{
        label: 'Maximize',
        click:(_,window)=>{
            window.maximize();
        }
    }, {
        label: 'Minimize',
        click:(_,window)=>{
            window.minimize();
        }
    }, {
        label: 'Restart'
    }, {
        type: 'separator'
    }, {
        label: 'Quit',
        role: 'quit'
    }];

但是我有一个 problem.When 我单击最小化然后单击最大化我收到一条错误消息说 Cannnot read property maximize of null 有什么想法吗?谢谢

您可以随时检查它是否已最小化并将其恢复为解决方法。我觉得这没什么大不了的。

要检查和恢复它,您可以使用这个:

if (window.isMinimized()) {
    window.restore();
}

整个事情是这样的:

{
    label: 'Maximize',
    click:(_,window)=>{
        if (window.isMinimized()) {
            window.restore();
        }
        window.maximize();
    }
}

托盘未绑定到任何 BrowserWindow,因此 window 为空。如果您在主进程中创建了托盘菜单,则可以只使用 mainWindow 引用,如果您在渲染器中,则可以使用 remote.getCurrentWindow()