一、Node Webkit介紹
Node Webkit是一個能夠讓你使用HTML5、CSS3和JavaScript等前端技術來編寫桌面應用程序的工具。
它和Chrome瀏覽器內核一樣使用了Webkit,而且支持Mac OS X、Windows和Linux平台,免費且開源。
Node Webkit以NW.js(Node WebKit)的名稱在GitHub上作為開源項目發布,npm上的官方模塊名稱是nw。
二、Node Webkit使用
1、從頁面開始
Node Webkit讓你可以編寫桌面應用程序而不需要學習額外的API。 你所編寫的應用程序將在NW.js的頁面中運行,因此你可以在應用程序中使用HTML,CSS,JavaScript和所有前端技術
<!DOCTYPE html>
<html>
<head>
<title>My NW.JS App</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
2、使用Node Webkit API
Node Webkit也提供了能力更強大的Node Webkit API,以便你可以訪問更多系統原生功能。
以下代碼片段展示了如何打開一個本地窗口:
var gui = require('nw.gui');
var win = gui.Window.open('http://www.example.com', {
show: true
});
3、打包和發布應用程序
在用Node Webkit編寫桌面應用程序後,您需要將其打包成適用於各個系統的可執行文件,並將其發布出去。以下步驟可幫助您完成此過程:
1.將應用程序的源文件複製到一個單獨的文件夾中,並將「package.json」文件放置在該文件夾中。該文件非常重要,因為它描述了您的應用程序:
{
"name": "My NW.js App",
"version": "1.0.0",
"main": "index.html"
}
2.在命令行中使用nw-build工具,將應用程序打包為適用於不同系統上的可執行文件:
$ nwbuild -p win64,osx64,linux64
3.您現在擁有三個文件夾,分別包含Windows、Mac和Linux版本的應用程序。
三、Node Webkit的應用場景
1、本地數據管理
藉助Node Webkit與本地資料庫的結合,您可以輕鬆地管理和訪問本地數據。您可以使用任何資料庫類型來存儲Web應用程序中的數據,並且所有數據可以在本地存儲,無需連接到互聯網:
var db = require('./lib/db');
db.query('SELECT * FROM users', function(err, results) {
console.log(results);
});
2、桌面應用程序
Node Webkit使得開發桌面應用程序變得更加簡單,您可以使用HTML,CSS和JavaScript等前端技術來編寫您的應用程序,獲得完整的原生GUI體驗並直接在用戶的桌面上運行:
var Tray = require('nw.gui').Tray;
var menu = new Menu();
menu.append(new MenuItem({
label: 'Option 1',
click: function() {
console.log('Option 1 clicked');
}
}));
menu.append(new MenuItem({
label: 'Option 2',
click: function() {
console.log('Option 2 clicked');
}
}));
var tray = new Tray({
icon: 'icon.png',
menu: menu
});
3、桌面通知
Node Webkit可以使您的應用程序更快速的響應時間和更簡單的開發流程。 您可以使用Chrome瀏覽器中用於桌面通知的API來向用戶發送自定義通知:
var options = {
body: 'This is a desktop notification',
icon: 'icon.png'
};
new Notification('Title', options);
四、總結
Node Webkit是一個全能的開發工具,它藉助於現有的Web技術,可以實現跨平台的桌面應用程序的快速開發和發布。 使用Node Webkit,您可以不需要學習額外的API就可以輕鬆地編寫桌面應用程序,並使用Node Webkit API來訪問更多系統原生功能,本地數據管理、桌面通知等。這些都是在Web開發領域是不可能完成的。
原創文章,作者:COZWV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/351664.html