1. 程式人生 > >2、node-webkit運行web應用,node-webkit把web應用打包成桌面應用

2、node-webkit運行web應用,node-webkit把web應用打包成桌面應用

file 打包成 type 後綴 什麽 ctype 打包 分享圖片 路徑

下面我通過一個簡單的demo來介紹怎麽樣把一個web應用打包成一個可執行文件(這裏只介紹windows環境)

首先新建一個index.html文件,作為我們這個demo的入口頁面,我們暫且就把這個頁面當成一個完整的web應用吧。內容隨便寫點什麽,比如:

項目結構如下:

技術分享圖片

html代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>NW</title>
    <link rel="stylesheet"
href="../css/NWcss.css"> </head> <body> <div id="nw">這是一個測試div</div> </body> <script src="../js/NWjs.js"></script> </html>

css代碼:

#nw{
    width: 500px;
    height: 300px;
    border: solid 1px red;
}

js代碼:

document.getElementById("nw").onclick=function () 
{ alert("別點我!!!") }

json代碼:

{
  "main": "html/index.html", // 啟動頁面
  "name": "NW",
  "window": {
    "toolbar": false, // 是否顯示工具欄(調試使用)
    "frame": true,   // 是否顯示NW框架
    "width": 666,//應用頁面的寬度
    "height": 450,//應用頁面的高度
    "resizable": true  //可調整大小
  }
}

除了上述配置:

還有很多其他有用的屬性可以配置具體的配置參數文檔可看這裏https://github.com/rogerwang/node-webkit/wiki/Manifest-format

項目在谷歌瀏覽器的運行效果:

技術分享圖片

該項目下所有的文件一起打包:註意,一定要在項目目錄內部執行壓縮

技術分享圖片

打包之後點擊進去壓縮包效果如下:

技術分享圖片

將該zip文件剪切到我們NW的安裝目錄:

技術分享圖片

將zip文件拖住放在nw.exe上面:

技術分享圖片

效果如下:

技術分享圖片

我們將zip文件後綴改為.nw效果也是也一樣

技術分享圖片

打包成exe文件

首先打開windows的cmd,進入到NW的安裝目錄下,然後輸入如下命令:

copy /b nw.exe+NW.nw app.exe

技術分享圖片

然後就會產生一個exe文件:

技術分享圖片

雙擊exe文件就可以運行我們的程序:

註意,此時的app.exe文件只能在該目錄下運行,因為它需要依賴NW的環境

但我們大多數人想的是給用戶一個exe文件,用戶就可以使用了,不用再附帶一些其他文件。

嗯,所以我們還可以把app.exe跟其他的文件再打包一次,把上圖中的所有文件變成一個可執行文件,用戶只要得到這個文件,就能運行我們的應用了。

做這步我們需要一個軟件叫Enigma Virtual Box,首先下載和安裝這個軟件,然後打開它。

然後在Enter Input File Name那裏輸入我們的app.exe的路徑,在Enter Output File Name那裏填寫我們要把打包出來的可執行文件輸出到哪裏。最後是把除app.exe外的其它文件拖入到Files那裏,遇到提示的話默認就可以了。

技術分享圖片

最後點擊右下角的Process按鈕,就大功告成了。

技術分享圖片

最後我們得到了一個 app_boxed.exe 的文件,只要把這個文件交給用戶,用戶就可以運行了。

node-webkit雖然方便,但有個很大的缺點是得到的可執行文件有點大,大家在可以在衡量利弊後決定使不使用。

當然node-webkit能做的並不是本文寫的那麽淺顯,例如

  • 解除了瀏覽器 沙盒 限制,像 葫蘆鴨 中用到的跨域,原本單憑前端是無法實現的。
  • 可以使用node.js,除了node.js本身的特性,意味著npm中那麽多的擴展可以供你使用。
  • node-webkit還實現了本地化的API,例如菜單欄,系統的托盤圖標支持,系統剪貼板

2、node-webkit運行web應用,node-webkit把web應用打包成桌面應用