Nodejs 用node-webkit开发桌面应用

Nodejs 用node-webkit开发桌面应用

<!-- more -->

node-webkit能做什么?

用Web技术(Node.JS,JavaScript,HTML5)开发桌面应用程序。(对,我理解的就是这样)

大家都做了什么?

这里有一份 优秀作品 的列表,点这里看看

准备工作

怎么样,看完那些作品,有没有血液沸腾,不知道你有没有,反正我是有的。 接下来实现一个对话聊天的桌面应用,叫做 葫芦鸭!,好吧,就是山寨 小黄鸡 啦。

本文重点不在于 葫芦鸭,而是node-webkit的简单尝试,所以就不废话了,材料我都准备好了。 所需材料如下:

第一步

跟node.js一样,在源码的根目录下需要建立 package.json,详细的参数和介绍在这里

{
  "main": "index.html", // 启动页面
  "name": "ga",
  "window": {
    "toolbar": false, // 工具栏
    "frame": false, // 框架
    "width": 430,
    "height": 450,
    "resizable": false 
  }
}

第二步

运行

  1. 将源码压缩成zip文件 注意哦,要如图那样的压缩,不能包含文件夹

  2. 直接将打包好的zip拖入到 nw.exe,就算是运行成功了。 打包


在当前目录下用命令行执行 我的用的是shift+右键调出的菜单

copy /b nw.exe+ga.zip app.exe

注意,第三个参数 nw.exe+ga.zip是有顺序的,不能对调

第三步

没了,写完了。

后续

Q 博主,你写的文章怎么这么坑,好像什么都没讲! A 对,我的文章就是这么坑,因为我对node-webkit不是很了解,想了好久,才写了这么点。 当然node-webkit能做的并不是本文写的那么浅显,例如

  • 解除了浏览器 沙盒 限制,像 葫芦鸭 中用到的跨域,原本单凭前端是无法实现的。
  • 可以使用node.js,除了node.js本身的特性,意味着npm中那么多的扩展可以供你使用。
  • node-webkit还实现了本地化的API,例如菜单栏,系统的托盘图标支持,系统剪贴板

技术: jquery + node-webkit
时间: 2014年3月
源码: Guthub
博客: 我的博客

23 回复

好东西


Nodejs 用node-webkit开发桌面应用

node-webkit能做什么?

用Web技术(Node.JS,JavaScript,HTML5)开发桌面应用程序。这就是说,你可以利用熟悉的Web技术来构建功能强大的桌面应用。

大家都做了什么?

这里有一份 优秀作品 的列表,点这里看看。

准备工作

看完那些作品,是不是很激动?让我们来实现一个简单的桌面应用——葫芦鸭!它其实就是一个模仿小黄鸡的聊天应用。

本文的重点在于node-webkit的简单尝试,因此不会过多讲解具体的应用逻辑。以下是所需的材料:

第一步:创建package.json

与Node.js类似,在项目的根目录下需要创建一个package.json文件。这个文件用于描述你的应用的基本信息和配置。

{
  "main": "index.html", // 启动页面
  "name": "ga",
  "window": {
    "toolbar": false, // 隐藏工具栏
    "frame": false, // 隐藏框架
    "width": 430,
    "height": 450,
    "resizable": false 
  }
}

第二步:运行应用

1. 打包应用

首先,将你的应用源码压缩成ZIP文件。注意,压缩时不要包含任何文件夹。

打包过程

2. 运行应用

将压缩好的ZIP文件拖入到nw.exe文件中即可启动应用。

运行过程

3. 使用命令行打包

你也可以在命令行中使用以下命令来打包应用:

copy /b nw.exe+ga.zip app.exe

注意,nw.exe+ga.zip的顺序不能颠倒。

命令行打包

第三步:完成

至此,你就完成了一个简单的桌面应用的开发和打包。你可以继续探索更多node-webkit的功能和特性。

后续

Q: 博主,你的文章怎么这么坑,好像什么都没讲!
A: 对,我的文章就是这么坑。因为我对node-webkit的了解有限,但node-webkit能做的事情远不止这些。例如:

  • 解除了浏览器的沙盒限制,使得跨域操作成为可能。
  • 可以使用Node.js及其丰富的扩展库(npm)。
  • 实现了本地化的API,如菜单栏、系统的托盘图标支持以及系统剪贴板等。

希望这篇文章能够激发你进一步探索node-webkit的兴趣!


技术:jQuery + node-webkit
时间:2014年3月
源码:GitHub

博客:我的博客

哈哈 教程很用心 nice

LZ很有爱,教程写的很好,1分钟我就看懂了,谢了

很nice的教材! 大赞!

楼主你好,问个很弱的问题,这些gif图是用什么软件生成的啊?

awesome

是gifcam

[@think2011](/user/think2011) 打包过使用express框架的项目吗

[@chigco](/user/chigco) 没有,就我的认识(并没有开发过实际项目), node-webkit仅仅只是一个运行框架,外加本地API,跟一般的node.js项目没什么区别。

app_error.png 如果只是单独运行这个生成的app.exe,就会出现图片所示的错误。 不知为何???

运行这个app.exe莫非还要依赖某些其它文件?? 根据自己的尝试,至少还需要nw.pak和icudt.dll 顺便提一下,自己的运行环境是Windows XP with Node.js 0.10.32 (32位系统)

想要这个工具用好,就得掌握ffi模块,掌握ffi模块,得先掌握ref模块.

图片教程 很cool

哎。真是想偷个懒也不行啊,有没有直接可以将现有的nodejs应用打包成各种端的呢?

我早就想弄cnode 的桌面版,不过没得妹子做UI

[@huazhenhz](/user/huazhenhz) 那些dll要加进去才行

楼主用什么截屏软件啊,好像比我现在用的GifCam好用。

教程里的动态图很赞!

[@hainee](/user/hainee) 不好意思,之前那么长时间竟然知道忘了看回复!了解啦,多谢!

Node-WebKit 是一个基于 Chromium 和 Node.js 的桌面应用程序开发框架。你可以使用 HTML、CSS 和 JavaScript 开发桌面应用,并且可以直接调用 Node.js 的 API 来处理本地文件系统、网络请求等任务。

下面是基于你提供的内容的一些步骤说明:

第一步:创建 package.json

首先,你需要创建一个 package.json 文件来配置你的应用信息。示例如下:

{
  "main": "index.html",
  "name": "葫芦鸭",
  "version": "1.0.0",
  "description": "一个用Node.js和Node-WebKit开发的桌面应用",
  "author": "Your Name",
  "window": {
    "toolbar": false,
    "frame": false,
    "width": 430,
    "height": 450,
    "resizable": false
  }
}

第二步:运行应用

  1. 将你的项目文件压缩为 zip 格式,但不要包含任何文件夹结构。直接将所有文件压缩在一起。
  2. 打开 node-webkit 应用程序(通常是 nw.exe),然后将压缩后的 zip 文件拖放到该程序上。

第三步:打包应用

你也可以通过命令行来打包应用。假设你已经在项目目录中,执行以下命令:

copy /b nw.exe+your_project.zip app.exe

这将会生成一个可执行文件 app.exe

示例代码

假设你的项目有一个简单的 index.html 文件,内容如下:

<!DOCTYPE html>
<html>
<head>
    <title>葫芦鸭</title>
</head>
<body>
    <h1>你好,葫芦鸭!</h1>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            console.log('HuluYa Desktop App is running!');
        });
    </script>
</body>
</html>

以上步骤和代码应该可以帮助你启动一个基本的 Node-WebKit 应用程序。更多高级功能和细节可以参考官方文档或进一步探索 Node-WebKit 提供的各种 API。

回到顶部