---恢復(fù)內(nèi)容開始---
以往寫windows桌面程序需要用MFC、C#之類的東西,那么如果你只會web開發(fā)技術(shù)呢?或者說你有一個網(wǎng)站,但是你想把你的網(wǎng)站打包成一個桌面應(yīng)用程序,該如何做呢?
答案就是用node-webkit這個開源框架,他封裝了webkit內(nèi)核和node.js,讓你可以用web技術(shù)來開發(fā)windows/linux/OSX程序等。指的一提的是目前node-webkit已經(jīng)改名為NW.js,下面是在github上的改框架站點:
本文講述了如果使用該工具打包成windows桌面程序的一個簡單例子,同時給出了如果降低打包出來的程序的size的一個方式(用node-webkit打包出來的桌面程序size通常會比較大),更多的技術(shù)細(xì)節(jié)請參考上述站點。
需求
首先我們的需求很簡單,做一個桌面程序,里面載入百度的首頁,用戶可以就像用瀏覽器一樣使用。同理,由于是封裝了webkit,你便可以使用web技術(shù)開發(fā)一個windows桌面軟件。
下載和安裝node-webkit
下載出來后解壓,文件夾中即為Node-webkit的主文件夾:
這里的nw.exe即該框架原先提供的一個已經(jīng)封裝了webkit等的exe,你自己創(chuàng)建的web程序其實都是需要這個東西來運行,以為它提供了runtime環(huán)境。
修改icon
這里有一點需要提的是,默認(rèn)情況下你創(chuàng)建出來的你的應(yīng)用程序(exe)會和nw.exe的圖標(biāo)一樣,當(dāng)然這個不是你所想要的。所以你可以通過resource hacker這個工具來修改nw.exe的圖標(biāo)成你所想要的,比如可以參考:
撰寫WEB應(yīng)用
到這里我們就可以開始撰寫web應(yīng)用了,因為本例子很簡單就是打開一個網(wǎng)址,所以應(yīng)用的目錄大致如下:
我們只要來看package.json這個配置文件,這個是每個用node-webkit進(jìn)行打包時候必須要的一個配置文件,內(nèi)容大致如下:
由于我們僅僅是打開一個網(wǎng)頁,所以main這個參數(shù)里面的值并不是index.html,而直接寫上一個網(wǎng)址就好
window.icon這個參數(shù)可以配置這個exe在windows的底部任務(wù)欄上的圖標(biāo)
toolbar最好設(shè)置為true,這樣子你的應(yīng)用程序上面會有類似于瀏覽器的工具欄,如果你的程序類似于一個音樂播放器之類的東西,那么你可能需要設(shè)置為false
關(guān)鍵package.json的語法請參考:
https://github.com/nwjs/nw.js/wiki/Manifest-format#webkit-subfields
打包
下面我們可以開始打包了。
首先將你的所有的應(yīng)用程序全選,添加壓縮文件后并改名為app.nw(名字無所謂,但是擴展名一定要修改為nw),要確保package.json在根目錄。即你打開壓縮后的zip應(yīng)該是這樣的
隨后,將你的app.nw拷貝到node-webkit的和nw.exe同一目錄,進(jìn)入windows cmd后運行下屬命令:
這個時候你發(fā)現(xiàn)生成了app.exe,這個時候即成功將你的web應(yīng)用打包成了一位windows桌面程序,直接雙擊它即可運行:
是不是看起來像是一個瀏覽器?其實他真的就是一個瀏覽器,因為他封裝了webkit!
發(fā)布
這個時候你希望把exe發(fā)布出去,但是要注意的是你不能獨立的運行這個app.exe,因為它需要依賴一些dll,官網(wǎng)上推薦用Enigma Virtual Box這個軟件來將app.exe和以來的dll打包成一個exe后發(fā)布,但是這里有個嚴(yán)重問你,那就是這個最后生成的yourapp.exe的size太大,至少70MB以上!
原因很簡單,這個是因為app.exe本身就很大,已經(jīng)有幾十mb,而他其實也是基于我們剛解壓出來node-webkit后那個nw.exe而生成的,而那個nw.exe本身已經(jīng)50+mb了,所以我們的app.exe能小的起來嗎?
這里推薦另一個打包方式,就是用Inno Setup來打包成安裝程序,即將你的一開始的web應(yīng)用源文件和node-webkit的nw.exe和一些以來dll直接壓縮成一個安裝文件,我們并不需要上述中間那先打包成app.exe的步驟。用戶在使用你的exe后會出現(xiàn)setup wizard把程序安裝到Program Files目錄中,其實等于解壓縮了,將nw.exe和dll還有你的web應(yīng)用釋放,這個時候所生成的安裝文件其實size會小很多。
我們通過這個站點來下載Inno Setup工具
下一步,填寫你的發(fā)布應(yīng)用的公司信息
繼續(xù)下一步直到走到Application Files,這一步是添加你的應(yīng)用程序的打包文件:
上面的“Application main executable file”指向node-webkit的nw.exe,下面的Other application files,通過add file(s)來添加nw.pak和dll依賴文件,通過add folder來添加你的web應(yīng)用文件
繼續(xù)點擊下一步,后面還可以選擇用戶安裝的時候可以選擇的語言:(默認(rèn)是沒有中文的,中文包請在這里下載)
下一步,可以還可以選擇分發(fā)的exe的icon
繼續(xù)后面的操作的,即可生成一個只有20多mb的setup.exe安裝文件了,以供分發(fā)