2014-10-27 69 views
3

我目前有一个适用于Mac和Windows的node-webkit应用程序。当您关闭窗口时,应用程序将继续在后台运行,并可通过系统托盘重新打开。如何重新打开已经运行的node-webkit窗口应用程序?

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

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

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

gui.App.on('reopen', function() { 
    win.show(); 
}); 

但是,根据该文件,将“重新”事件仅仅是一台Mac的功能。

是否有可能在Windows上具有相同的行为?怎么样 ?

回答

2

是的,目前还没有为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项目并选择关闭应用程序的退出按钮。

1

我有问题,我一直在使用听不打开重新修复它,这里是为您的桌面情况下 简单的JSON格式的清单“的package.json”简单的代码:

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

那么一个简单的索引。 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文件并单击o n关闭它会隐藏它,然后点击桌面快捷方式,它会重新显示“重新打开”,并带有警报

相关问题