前言:
受益于 Node 的问世, JavaScript 终于能够挣脱浏览器这个条条框框的盒子. 于是, JavaScript 能够开发服务器应用了. 既然 JavaScript 能够运行在操作系统中, 那是否也能使用 JavaScript 像 C/C++ 开发那些个桌面应用呢.
在 Google 一番之后, 果然已经有高人实现了这个想法了.
Node-webKit, 把浏览器的布局引擎 WebKit 和 Node.JS 结合了在一起. WebKit 负责处理 html5 UI 相关的部分, 而 Node.JS 负责本地的 API 接口, 比如文件系统, 网络, 设备等等.
一个需要特别提醒的, Node-WebKit 的开发维护者正是国内的王文睿大大, 中国人啊, 很自豪有木有!! 但是项目文档好想没有中文版的, 只是英文版的, 这也许是要和国际接轨的原因吧.
项目地址: https://github.com/rogerwang/node-webkit https://github.com/rogerwang/node-webkit
话不多说, 我们撸起袖子, 开始尝试一下使用前端技术开发桌面应用的乐趣吧.
Windows 桌面版《2048》
Step 1 准备材料
1,node-webkit(本文使用 v0.8.6-win 版本):
2, 基于 jQuery 实现的 2048 游戏:
- /article.PHP?mod=view&uid=15045&id=c65886b37044b7ecbfcf4e466b72f38e(原文地址)
- https://github.com/JerryC8080/My2048 https://github.com/JerryC8080/My2048 (下载地址)
node-webkit 的其他版本, 在项目地址 ( https://github.com/rogerwang/node-webkit https://github.com/rogerwang/node-webkit ) 可以下载得到, 不同操作系统是不同版本的.
基于 jQuery 实现的 2048 游戏, 是我之前做的一个小玩意, 而这一次就完美移植到 Windows 桌面, 哇嘎嘎嘎.
node-webkit 下载并解压之后, 如下:
文件说明:
nw.pak -- 核心 JavaScript 库
incudt.dll -- 网络库
ffmpegsumo.dll -- 媒体库, 为 < video>,<audio > 或者其他媒体功能提供支持
libEGL.dll,libGLESv2.dll,D3DCompiler_43.dll,d3dx9_43.dll -- 该四个 dll, 为 WebGL,GPU,DirectX 提供支持
基于 jQuery 实现的 2048 游戏下载并解压之后, 如下:
Step 2 编写 package.JSON 文件
在《2048》游戏的目录, 新建一个 package.JSON 文件, 输入内容:
- {
- "name": "MyDemo",
- "main": "index.html",
- "window": {
- "toolbar": false,
- "resizable": false,
- "width": 660,
- "height": 800
- }
- }
Step 3 压缩源程序
我们使用压缩工具, 把已经编写好的../My2048-master 目录里面的内容压缩.
压缩需要注意的两点:
1, 压缩格式要为 zip;
2, 文件后缀名要为. nw;
如图:
压缩完成
Step 4 预览
把压缩好的 My2048-master.nw 文件复制到 node-webkit 目录:
运行 cmd,
移动到 node-webkit 所在的目录: cd + node-webkit 所在的路径
运行命令: nw My2048-master.nw
便能看到预览效果了
Step 5 生成 exe 执行文件
依然在 node-webkit 的目录下
运行命令:[backcolor=transparent]copy /b nw.exe+My2048-master.nw My2048.exe[/bgcolor]
[backcolor=transparent]
[/bgcolor]
- [backcolor=transparent]
- [/bgcolor]
OK, 我们可以看到 node-webkit 目录下多了一个 My2048.exe 的执行文件, 我们点解它运行看看效果:
Step 6 打包程序
如果想把这个程序发给朋友, 除了. exe 文件之外, 还需要包括另外两个必要的文件:
- icudt.dll(必要网络库),
- nw.pak(核心 JavaScript 库)
这两个是最基本的文件, 如果程序还包含了其他功能, 还需要包含相对应的 dll 文件, 各个文件功能说明文章开始已经说明了.
所以, 我们得到了最基本的发布版了:
来源: http://www.qdfuns.com/article/15045/6f079185fcc1cbda853249c75f4c07d7.html