我目前有一个适用于 Mac 和 Windows 的 node-webkit 应用程序。当您关闭窗口时,该应用程序会在后台继续运行,并且可以通过系统托盘重新打开。
我想让我的用户从可执行文件打开窗口(想想桌面上 .exe 的快捷方式)。
在 Mac 上,我这样做是为了允许用户从 Dock 打开窗口:
var gui = require('nw.gui');
gui.App.on('reopen', function() {
win.show();
});
但是,根据文档,“重新打开”事件是 Mac 独有的功能。
是否有可能在 Windows 上有相同的行为?怎么样?
最佳答案
是的,目前还没有为窗口提供重新打开功能,但另一种方法是使用 window.hide()
和托盘功能,如 Tray 中所述。 .
在我的应用程序中,我为最小化、最大化和关闭创建了自定义按钮,并为它们提供了以下功能:
var gui = require('nw.gui');
var window = gui.Window.get();
var isMaximised = false;
//Minimise:
minimise: function(){
window.hide();
var tray = new gui.Tray({title: 'Tray'});
var menuTray = new gui.Menu();
menuTray.append(new gui.MenuItem({ label : 'quit',
click: function(){
window.close();
}
}));
tray.menu = menuTray;
tray.on('click',function(){
tray.remove();
window.show();
tray = null;
});
}
//Maximise
maximise: function(){
if (isMaximized) {
isMaximized = false;
window.unmaximize();
} else {
isMaximized = true;
window.maximize();
}
}
//Close
close: function(){
window.hide();
var tray = new gui.Tray({title: 'Tray'});
var menuTray = new gui.Menu();
menuTray.append(new gui.MenuItem({ label : 'quit',
click: function(){
tray.remove();
window.close();
}
}));
tray.menu = menuTray;
tray.on('click',function(){
tray.remove();
window.show();
tray = null;
});
}
因此,在通过单击关闭按钮关闭应用程序时,它会隐藏应用程序并在托盘(Dock)中创建一个 menuItem。单击停靠栏中的图标时,它会向用户显示应用程序。
现在可以关闭应用程序的唯一方法是右键单击停靠栏项目并选择关闭应用程序的退出按钮。
关于javascript - 如何重新打开已经运行的 node-webkit 窗口应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26587863/