node-webkit軟件升級機制,若是是js,html,css等不會被運行中的程序鎖的文件能夠直接下載替換,重啓一下就行了,若是有資源佔用,不能替換的話,要採起下列方式。css
/* 升級邏輯html
1. 檢查升級node
2. 下載到臨時目錄.web
3. 解壓到臨時文件夾.ui
4. 運行臨時文件夾的程序,關掉主文件夾的程序.spa
5. 臨時文件夾的程序考備本身到主文件夾.code
6. 臨時文件夾的程序退出,運行考完後的主文件夾的程序.htm
*/資源
代碼不舉例了,說一下關鍵點:get
運行別的程序,關掉本身能夠用兩種方式實現:
運行別的程序能夠用:
require('child_process').spawn(exepath,args,opts)
也能夠用:
gui.Shell.openItem(exepath+args);
關閉本身能夠用:
gui.App.quit();
也能夠用:
gui.Window.get().close();
另外一個:如何在臨時文件夾中運行區別與主文件運行能夠經過傳入的參數來判斷:
如:
if(gui.App.argv.length){ var mainExecPath = gui.App.argv[0];//主程序目錄 var mainExecExePath = gui.App.argv[1];//主程序運行程序地址 if(mainExecPath &&mainExecExePath){ //執行考備本身到主程序目錄,再運行主程序 return; } } }