目录
一、node-webkit是什么?
二、node-webkit有些什么干货?
三、node-webkit的基本工作原理是怎样的?
四、怎样用node-webkit进行客户端开发?
五、如何做到开发一份代码,生成多平台APP?
六、使用node-webkit开发桌面客户端的优缺点?
七、Q & A!
一、node-webkit是什么?
1、概念
基于node.js和chromium的应用程序实时运行环境,可运行通过HTML(5)、CSS(3)、Javascript来编写的本地应用程序。node.js和webkit的结合体,webkit提供DOM操作,node.js提供本地化操作;且将二者的context完全整合,可在HTML代码中直接使用node.js的API。
2、获取node-webkit
官网:https://github.com/rogerwang/node-webkit
支持的平台:Windows 32bit,Linux 32/64bit,Mac 32bit(OS X 10.7+)
选择与平台相对应的版本,下载并安装即可。
二、node-webkit有些什么干货?
官方提供的一些成品:https://github.com/rogerwang/node-webkit/wiki/List-of-apps-and-companies-using-node-webkit
三、node-webkit的基本工作原理是怎样的?
webkit提供DOM操作,包括HTML解析、CSS渲染、Javascript解释执行、DOM事件处理等。而node.js则提供一些本地化的操作、服务器端的处理等。二者的上下文完全融合,实现一个较为完美的本地应用环境。
四、怎样用node-webkit进行客户端开发?
1、一个node-webkit项目的基本目录结构
nw-demo.png
上面这是一个简单nw应用的目录结构,如果nw应用中需要用到额外的node_module,可以在目录结构中增加一个node_modules的目录,以存放APP所需的node插件。
其实,一个最最简单的nw应用,只需要有mail.html和package.json文件即可,如下:
屏幕快照 2013-06-05 上午11.57.41.png
2、认识package.json
“Every app package should contain a manifest file named package.json, it will tell node-webkit how to open the app and control how the browser behaves. ”
package.json格式如下:
{
"main": "main.html", /* APP的主入口,文件名任意;必选 */
"name": "nw-demo", /* APP的名称,必须具备唯一性,且符合正常变量命名;必选 */
"description": "demo app of node-webkit", /* APP的简单描述 */
"version": "0.1.0", /* APP的版本号 */
"keywords": [ "demo", "node-webkit" ], /* APP的关键字,搜索APP时用到 */
"window": { /* APP的窗口属性 */
"icon": "link.png", /* APP图标(windows下,状态栏上可见) */
"toolbar": true, /* 是否显示工具栏 */
"width": 800, /* 窗口初始化大小 */
"height": 500,
"frame": true /* 是否显示外窗体,如最大化、最小化、关闭按钮 */
},
"user-agent": "%name %ver %nwver %webkit_ver %osinfo" /* 可自定义APP的UA */
}
其中,main和name是必选字段,更多配置字段,可参考官方地址:https://github.com/rogerwang/node-webkit/wiki/Manifest-Format
3、主窗口mail.html的写法
随意写,和普通的前端页面开发方式一样!
4、最简单的HelloWorld
a)、目录结构
屏幕快照 2013-06-05 下午7.15.47.png
b)、package.json文件代码
屏幕快照 2013-06-05 下午7.16.51.png
c)、main.html文件代码
屏幕快照 2013-06-05 下午7.17.21.png
d)、执行命令,运行
屏幕快照 2013-06-05 下午7.19.26.png
e)、最终效果
屏幕快照 2013-06-05 下午7.26.26.png
也许你会觉得这个界面特别熟悉,没错,它就是chromium!只是在node-webkit中,我们可以通过修改package.json配置,把工具栏和外框去掉,修改后的配置为:
屏幕快照 2013-06-05 下午7.23.49.png
去掉外框后的运行效果:
屏幕快照 2013-06-05 下午7.25.30.png
你一定会发现去掉toolbar和frame以后,窗口没法被拖动了,其实,可以通过下面这句css来实现窗口可拖动:
屏幕快照 2013-06-05 下午7.31.16.png
五、如何做到开发一份代码,生成多平台APP?
1、nw包制作
屏幕快照 2013-06-06 上午11.43.34.png
完成上面的操作,已经生成了一个名为hello-world.nw的文件,如果本机已经安装过node-webkit,双击该文件即可运行。但是,针对未安装过node-webkit的用户,还需要将此nw的运行环境也打包在一起,并生成通用可执行文件,Mac上*.app,Windows上*.exe。
2、针对Mac OS X,*.app文件制作
a)、app.icns文件制作
为你的App制作特定图标,可准备一张1024*1024的png图片,利用icns-Tool工具生成app.icns图标文件。
b)、修改Info.plist文件
为你的App制作或修改特定的描述文件。
c)、打包*.app
从官网再次下载node-webkit的Mac版,命令行执行:
mv hello-world.nw app.nw
cp app.nw node-webkit.app/Contents/Resources/
cp app.icns node-webkit.app/Contents/Resources/
cp Info.plist node-webkit.app/Contents/
mv node-webkit.app hello-wrold.app
至此,Mac OS X版本的可执行程序hello-world.app制作完成。
一般情况下,都会将其压缩后再进行传播。
3)、针对Windows,*.exe文件制作
windows版本的exe程序制作非常容易,从官网下载node-webkit.exe,cmd下执行:
copy /b node-webkit.exe+app.exe hello-world.exe
在Linux环境下,可以使用如下命令:
cat node-webkit.exe app.exe > hello-world.exe
至此,Windows版本的hello-world.exe程序制作完成。
4)、将繁琐重复的操作整合到一个build.sh脚本中
#! sh
app_name="system-info"
# 创建app.nw文件
rm -rf output
cd ../ && rm -rf output && mkdir output
cp -r $app_name/* output
rm -rf output/Info.plist output/build.sh output/app.icns
cd output/
find . -type d -name ".svn" | xargs rm -rf
zip -r ../app.nw * > /dev/null;
rm -rf * && cd ../ && mv app.nw output/
mv output $app_name/ && cd $app_name
echo "create nw file success!"
#下载基础包
svn co svn://localhost/node-webkit-base output > /dev/null
#创建mac版本app
cd output
unzip mac-os-x.zip -d mac-os-x > /dev/null
rm -rf mac-os-x.zip mac-os-x/nwsnapshot
if [ -f ../Info.plist ];then
cp ../Info.plist mac-os-x/node-webkit.app/Contents/
fi
cp app.nw mac-os-x/node-webkit.app/Contents/Resources/
if [ -f ../app.icns ];then
cp ../app.icns mac-os-x/node-webkit.app/Contents/Resources/
fi
mv mac-os-x/node-webkit.app mac-os-x/$app_name.app
echo "create mac os app success!"
#创建windows版本app
unzip win-32.zip -d win-32 > /dev/null
rm -rf win-32.zip win-32/nwsnapshot
cp app.nw win-32/ && cd win-32
cat nw.exe app.nw > $app_name.exe
rm -rf nw.exe nwsnapshot.exe
cd ..
echo "create windows app success!"
#删除app.nw
rm -f app.nw
六、使用node-webkit开发桌面客户端的优缺点?
1、优点
提高UI开发效率,DOM中丰富的事件等可以涵盖绝大多数桌面开发中的情况
HTML(5)与CSS(3)拥有丰富的展现效果,可以更容易地对界面进行改版、换肤
容易实现跨平台:Mac OS X 、Windows、Linux
使用Web开发人员工具可以使 UI 调试变得很轻松
桌面程序UI与Web版UI可以共享代码
2)、缺点
浏览器原生API几乎仅仅局限在Web页面上
若通过JavaScript引擎向Web前端暴露一些具有操作客户端权限的API,如何保证代码安全性
必须携带浏览器内核运行库,无形增加程序体积,至少20MB以上(压缩后)
能否满足各种复杂怪异的需求,比如异型窗口
分享到:
相关推荐
oschat基于HTML5 WebSocket的开源IM,后台服务基于spring+ undertow + akka. 客户端使用了node-webkit,使用html5+js进行开发. 客户端完全用了web相关技术,所有很方便的进行二次开发和集成.
**Node-Webkit 开发:打造桌面Web混合应用** Node-Webkit,简称为nw.js,是一个基于Chromium浏览器和Node.js的开源框架,它允许开发者利用Web技术(HTML、CSS、JavaScript)来构建桌面应用程序。这个框架的独特之处...
这极大地降低了开发跨平台桌面应用的门槛,因为开发者只需要熟悉Web开发技能,无需学习新的编程语言或框架。 **三、API集成** Node-Webkit集成了Node.js的全局对象,允许开发者直接在前端JavaScript中调用Node.js...
Node-Webkit的出现极大地降低了开发跨平台桌面应用的门槛,因为它将网页技术和本地API无缝结合在一起。 在"node-wekit114地图"这个项目中,我们可以推测这是一个使用Node-Webkit技术构建的桌面应用,主要功能可能是...
node-webkit 平台上的 YDN-DB 待办事项列表应用程序待办事项列表在 node-webkit 平台上创建 HTML5 桌面应用程序的示例应用程序。 有关更多信息,请参阅项目。 是 HTML5 数据库库,用于在客户端浏览器上存储大量数据...
NodeWebkit(nw.js)是JavaScript世界中的一种重要工具,它使得开发者能够利用Web技术开发跨平台的桌面应用。这个版本0.39.2是针对Windows 64位操作系统的。"win-x64"表明它是为64位Windows系统设计的,这意味着它不...
Queuebe-client 是一个基于 node-webkit 技术的官方客户端,专为 Queuebe 平台设计,用于管理和处理队列任务。node-webkit 是一个开源项目,它允许开发者使用 HTML、CSS 和 JavaScript 开发桌面应用,结合了 Chrome ...
它是基于Chromium浏览器和Node.js的,因此开发者可以利用Web技术进行跨平台的桌面应用开发。 2. **更新系统**:在软件开发中,更新系统负责检测、下载和安装新版本的软件,确保用户始终运行的是最新版本。Nua可能是...
使用Node-WebKit开发HTML5本地桌面应用非常直观。开发者首先需要下载Node-WebKit,然后创建一个名为`package.json`的配置文件,指定应用的名称和主启动文件。例如: ```json { "name": "nw-demo", "main": "index...
综上所述,"DingTalkWeb.7z" 提供了一个便携式的阿里钉钉客户端,通过node-webkit技术将网页版的钉钉转换为桌面应用,便于用户在不安装完整客户端的情况下使用其各种办公功能。这个绿色版客户端包含了一系列核心组件...
JavaScript甚至可以用于桌面应用的开发,通过NW.js(前身是Node-Webkit)和Electron框架,开发者可以构建跨平台的桌面应用,这些应用同样基于Web技术,但具有桌面应用的特性,如离线运行和系统级访问权限。...
这个框架基于Chromium浏览器和Node.js,将两者的优势结合在一起,使得开发者可以在熟悉的Web开发环境中开发跨平台的桌面应用。 nw.js v0.47.3-win-x64是一个针对Windows 64位操作系统的特定版本。它包含了运行nw.js...
这个标题揭示了我们正在讨论的是一个专门为Linux操作系统设计的网易云音乐客户端,而且是利用nw.js(原名node-webkit)框架开发的。nw.js是一个开源项目,它允许开发者使用HTML、CSS和JavaScript来构建桌面应用程序...
在描述中提到,为了运行客户端,需要以客户端文件夹为源运行node-webkit。这意味着用户需要下载并安装node-webkit,然后指定iSmusic项目的客户端目录作为入口,这样就能启动应用程序。通过这种方式,iSmusic能够在...
总的来说,"nwjs-0.34.0-mac-osx-x64"是一个用于构建跨平台桌面应用的工具包,结合HTML5、CSS3和JavaScript的强大能力,为开发者提供了一种便捷的开发途径。通过学习和掌握这些技术,开发者可以创建出具有丰富功能和...
总的来说,"Heremes: 内网聊天变得简单"项目涵盖了JavaScript服务器开发、客户端应用(包括Chrome插件、Node-Webkit桌面应用和安卓应用)、用户认证、协作特性等多个方面,是一个全面的内网通信解决方案。...
nwjs-v0.17.0-win-x64.zip 是一个针对Windows x64平台的nw.js(前身称为Node-Webkit)版本0.17.0的压缩包。nw.js是一个开源项目,它允许开发者使用JavaScript、HTML和CSS创建桌面应用程序。这个压缩包包含了运行nw....
超重载HyperReload 是一个轻量级的工具,用于在 JavaScript 中快速开发移动应用程序。它能做什么在台式机上编辑 ... 要运行 HyperReload,无需进行实际构建,只需克隆源代码,然后使用 node-webkit 运行即可。
除了用于桌面浏览器外,WebKit 还被广泛应用于移动设备和嵌入式系统上。 ##### 二. WebKit 主要特点和目标 WebKit 的主要特点包括: - **高性能**:WebKit 使用高效的算法和数据结构,提供了快速的网页加载速度。...