2014-10-27 71 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關閉它會隱藏它,然後點擊桌面快捷方式,它會重新顯示「重新打開」,並帶有警報

相關問題