node-webkit入门:用JS开发跨平台的桌面应用
2016-01-29 10:05
1076 查看
node-webkit入门:用JS开发跨平台的桌面应用
转载▼
标签:
| 分类: nodewebkit |
以下是从网络上搞的各种文章。
,在自己稍加修改后,写出来。
目前自己在 MAC和WIN8上亲测成功!!
==================================我是分割线===================================
node-webkit是一个基于chromium和node.js实现的应用程序运行时环境,开发人员可运行通过HTML(5)、CSS(3)、Javascript来编写的本地应用程序。
项目地址: https://github.com/rogerwang/node-webkit
文档: https://github.com/rogerwang/node-webkit/wiki
开源协议:MIT
特点:
使用web技术开发,html5、css3、js、webGL。
在网页中使用node.js。
跨平台运行,兼容linux、mac、windows。
安装node-webkit(这里以mac os为例)
1.去github下载mac版的node-webkit https://github.com/rogerwang/node-webkit
下载之后解压:如下图
2.解压之后修改 ~/.bash_profile ,设置node-webkit执行程序的别名为nw(本人解压在/Applications目录)。
alias nw="/Applications/node-webkit-v0.9.2-osx-ia32/node-webkit.app/Contents/MacOS/node-webkit”
这里如何查看Contents/MacOS/ 这个目录呢? 其实mac会把应用程序打成一个包,你要右击应用程序,然后显示包内容如下图
3.使别名立即生效
source ~/.bash_profile
4. 在控制台输入nw测试是否安装成功。
PS:Windows安装很方便,直接解压缩就好。
使用node-webkit进行开发
一个基本的node-webkit项目一般由3部分组成:主窗口文件index.html、配置文件package.json、其他一些资源及类库。
接下来,搞个helloworld。
Mac版本:
1. 新建一个项目文件夹test1/
2. 创建主窗口文件test1/index.html
3. 创建test1/package.json
{ "main" : "index.html",
"name" : "test",
"window" : { "toolbar" : false }
}
这里的main也可以直接写一个网址: 比如把一个B/S结果的网站,给搞成一个伪状态的C/S结构,这其实就是我们搞的关键
4. 在控制台执行 nw test1 就能运行该应用程序。
打包应用程序
目前我们运行一个应用程序需要通过命令行来执行。
但在实际环境中我们需要将应用打包成.app(mac)或.exe(windows)文件以方便用户的使用。
mac电脑上打包很简单,只需要将我们的项目压缩成xx.nw 。在将xx.nw复制到node-webkit.app/Contents/Resources目录下。node-webkit.app就是你的应用程序了,然后改名字如 hello.app 。
压缩: zip app.nw package.json
拷贝:cp app.nw /Applications/node-webkit-v0.9.2-osx-ia32/node-webkit.app/Contents/Resources/
最后完事删除掉:rm -rf app.nw
windows下:
下载完之后解压,可以看到如下内容:
双击nw.exe直接运行,看到如下界面说明一切都ok,在你的机器上可以运行:
老规矩,先来Hello World!
建一个example1.html,内容如下:
在同一级目录下再建一个package.json,内容如下:
{
"name": "nw-demo",
"main": "example1.html"
}
好了,用你机器上的压缩工具,rar或者7z或者神马神马的,把这两个文件压缩成exampl1.zip,如下图所示:
注意,用什么工具压缩无所谓,但是一定要压缩成ZIP格式。
把example1.zip拷贝到与nw.exe同级的目录下,如下图:
然后用鼠标把example1.zip拖动到nw.exe上运行(用命令行也可以,不过在windows下还是直接拖比较爽一点),效果如下图:
这样,第一个例子就完成了,然后你自己可以去玩儿了。
按照官方的搞法,example1.zip可改名成example1.nw,这样显得更加高大上一些。不过由于小僧的BIG一向比较低,私认为用.zip作为后缀也没啥不可以。
来点儿JS
第一个例子代码非常简单,你可以自己加点儿你最熟悉的JS代码,比如这样:
显然,这里有很多HTML5的习惯写法,那当然是必须的对吧?因为webkit在google的调教之下早已成了HTML5的开路先锋了!
打包和分发
如上图,很显然,要想让我们的应用跑起来,以上这些dll和pak文件是少不了的(至于每个文件是用来干嘛的,请参见官方的描述文档)。
那么,对于我们做的example1这个简单的应用,怎么让我们的用户能运行它呢?当然,让我们的用户自己去下载node-webkit然后解压运行,这也算一种办法,这样的话我们只要把example1.zip文件扔给他就可以了。
不过这样总觉得有点儿奇怪,要是能把所有相关的内容都打包成一个独立的exe文件就好了,比如打包成example1.exe,这样用户拿到之后直接双击就可以运行,这样显然是极好的。
OK,let's go!
首先,我们要合并example1.zip和nw.exe,形成一个新文件,名为example1.exe,这一点我们通过windows的命令行下的copy命令可以实现:
copy /b nw.exe+example1.zip example1.exe
注意,nw.exe必须放在+号前面。
这样就生成了一个名为example1.exe的文件,双击这个文件,看到的效果和第一个例子相同。很显然,这个example1.exe还是要依 赖那些dll文件才能运行,所以,这时候我们需要一款打包工具来帮助我们把这些example1.exe和dll文件都打包到一起,它就是Enigma
Virtual Box ,大家可以点击这里下载安装:
http://enigmaprotector.com/assets/files/enigmavb.exe
安装完成之后启动,看到如下界面:
打包过程截图(请按照图中的配置操作):
点击右下角的Process按钮开始打包,最终获得了一个名为example1_boxed.exe的文件。把这个文件拷贝到其它任意目录中双击,如果能顺利运行,说明打包成功!你可以把它分发给你的用户了!
最后说下 package.json
{ "main": "main.html", "name": "nw-demo", "description": "demo app of node-webkit", "version": "0.1.0", "keywords": [ "demo", "node-webkit" ], "window": { "icon": "link.png", "toolbar": true, "width": 800, "height": 500, "frame": true }, "user-agent": "%name %ver %nwver %webkit_ver %osinfo" } |
相关文章推荐
- [Node入门] => 读书笔记(一)
- Hadoop 之 数据流——客户端与HDFS,namenode和datanode 之间的数据流
- 【树】Populating Next Right Pointers in Each Node
- node.js学习笔记之React
- 如何启动ResourceManager和NodeManager
- nodejs小问题:[1]express不是内部或外部命令
- node.js 安装
- LeetCode vDelete Node in a Linked List
- 24. Swap Nodes in Pairs
- node-gyp 设置 Proxy
- 前端工程师使用node.js打造日记社区教程之二
- [转]ReactPHP── PHP版的Node.js
- Node.js 学习(七)Node项目部署工具之forever
- 19. Remove Nth Node From End of List
- nodejs 正则表达式
- node.js中遇到SyntaxError: Use of const in strict mode
- golang下很舒服的web框架:neo——推荐了解nodejs的koa的用户使用
- spark的slave上没有datanode 的解决办法
- Nth to Last Node in List
- node-zk-browser 安装配置