javascript - 如何重新打开已经运行的 node-webkit 窗口应用程序?

标签 javascript node-webkit

我目前有一个适用于 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/

相关文章:

javascript - 如何在回调函数中为 chrome 扩展图标设置动画?

javascript - Joi 验证 ||在对象数组中,至少一个对象应包含某个键的特定值

node.js - 准备要分发的node_modules 吗?

node.js - 将 node.js 应用程序打包为跨平台可执行文件,不适用于桌面应用程序

javascript - 如何在 node-webkit 中测试跨源数据?

javascript - Bootstrap 下拉设置选定值

javascript - tinyMCE 编码 HTML 标签

javascript - 用户单击选项时的导航/按钮堆积效果

node.js - 防止 OSX 菜单栏在 Node WebKit kiosk 模式下显示

node.js - 在 node.js 应用程序和 lua 应用程序之间共享数据