Javascript 如何重新打开已运行的节点webkit窗口应用程序?

Javascript 如何重新打开已运行的节点webkit窗口应用程序?,javascript,node-webkit,Javascript,Node Webkit,我目前有一个适用于Mac和Windows的节点webkit应用程序。关闭窗口后,应用程序将在后台继续运行,并可通过系统托盘重新打开 我想让我的用户从可执行文件打开窗口(想想桌面上.exe的快捷方式) 在Mac上,我这样做是为了允许用户从Dock打开窗口: var gui = require('nw.gui'); gui.App.on('reopen', function() { win.show(); }); 但是,根据文档,“重新打开”事件是Mac唯一的功能 在Windows上是否

我目前有一个适用于Mac和Windows的节点webkit应用程序。关闭窗口后,应用程序将在后台继续运行,并可通过系统托盘重新打开

我想让我的用户从可执行文件打开窗口(想想桌面上.exe的快捷方式)

在Mac上,我这样做是为了允许用户从Dock打开窗口:

var gui = require('nw.gui');

gui.App.on('reopen', function() {
    win.show();
});
但是,根据文档,“重新打开”事件是Mac唯一的功能


在Windows上是否可能有相同的行为?如何操作?

是的,目前还没有为windows提供重新打开功能,但另一种方法是使用
window.hide()
和托盘功能,如中所述。
在我的应用程序中,我创建了用于最小化、最大化和关闭的自定义按钮,并为它们提供了以下功能:

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)中创建一个菜单项。单击dock中的图标,它会向用户显示应用程序。

现在关闭应用程序的唯一方法是右键单击dock项,然后选择退出按钮关闭应用程序。

我遇到了这个问题,我已使用listen to open not Recover解决了它,下面是用于桌面案例的简单代码 简单清单Json“package.Json”:

然后是一个简单的index.html文件

<html>
 <head>
  <script>
   var gui = require('nw.gui');
   var win = gui.Window.get();
  </script>
 </head>
 <body>
  <script>
   //list to open and make the app show
   gui.App.on('open', function() {
   win.show();
   alert("file re-open");
   });

   // prevent close and make it hide
   win.on('close', function() {
   win.hide(); 
   });
  </script>
  <!-- forse close the app -->
   <center><br><br><input type="button" value="exit app" onclick="win.close(true)"></center>
  </body>
 </html>

var gui=require('nw.gui');
var win=gui.Window.get();
//要打开并使应用程序显示的列表
gui.App.on('open',function()){
win.show();
警报(“文件重新打开”);
});
//防止关闭并使其隐藏
win.on('close',function(){
win.hide();
});


然后复制并通过同一目录上的节点webkit文件,如普通软件包方式,然后重命名nw.exe以重新打开.exe,然后右键单击并创建桌面快捷方式,并从文件夹中打开exe文件,然后单击“关闭”将其隐藏,然后单击桌面快捷方式,并将其重新显示为“重新打开”警惕地

<html>
 <head>
  <script>
   var gui = require('nw.gui');
   var win = gui.Window.get();
  </script>
 </head>
 <body>
  <script>
   //list to open and make the app show
   gui.App.on('open', function() {
   win.show();
   alert("file re-open");
   });

   // prevent close and make it hide
   win.on('close', function() {
   win.hide(); 
   });
  </script>
  <!-- forse close the app -->
   <center><br><br><input type="button" value="exit app" onclick="win.close(true)"></center>
  </body>
 </html>