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

How reopen an already running node-webkit window app?

本文关键字:节点 webkit 窗口 应用程序 运行 何重新      更新时间:2023-09-26

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

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

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

var gui = require('nw.gui');
gui.App.on('reopen', function() {
    win.show();
});

但是,根据文件,"重新开放"活动是Mac独有的功能。

在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中的图标,它会向用户显示应用程序
现在关闭应用程序的唯一方法是右键单击停靠项并选择关闭应用程序所需的退出按钮。

我遇到了这个问题,我已经使用list-to-open修复了它,而不是重新打开,下面是桌面案例的简单代码简单清单Json"package.Json":

{
  "main": "index.html",
  "name": "reopen from Desktop",
  "window":
  {
  "width": 300,
  "height": 200
  }
}

然后是一个简单的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>

然后像普通包一样复制并通过同一目录下窗口的节点webkit文件,然后将nw.exe重命名为reopen.exe,例如,然后右键单击并创建桌面快捷方式,从文件夹中打开exe文件,然后单击将隐藏的关闭,然后单击桌面快捷方式并重新显示"重新打开",并发出警报