一、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开发领域是不可能完成的。