Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
这年头,你只需要懂node-webkit
Search
Ethan Lai
April 27, 2013
Technology
27
17k
这年头,你只需要懂node-webkit
node-webkit入门介绍
Ethan Lai
April 27, 2013
Tweet
Share
Other Decks in Technology
See All in Technology
AWSの新機能をフル活用した「re:Inventエージェント」開発秘話
minorun365
2
460
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
2
200
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
21
8.1k
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
1k
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
760
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
170
松尾研LLM講座2025 応用編Day3「軽量化」 講義資料
aratako
6
3.6k
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
1
190
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
1.5k
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
3.9k
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
410
Identity Management for Agentic AI 解説
fujie
0
470
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.3k
Documentation Writing (for coders)
carmenintech
77
5.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
120
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5k
Why Our Code Smells
bkeepers
PRO
340
57k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
680
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
73
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
WCS-LA-2024
lcolladotor
0
390
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
120
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
28
Transcript
这年头,你只需要懂node-webkit @ethanlai http://oklai.name
About Me Ethanlai ISUX QQ会员设计中心 Koala 作者 Blog: http://oklai.name Github:
https://github.com/oklai
node-webkit是什么? 项目地址: https://github.com/rogerwang/node-webkit node-webkit是一个基于Chromium与node.js的 应用程序运行器,允许开发者使用web技术编 写桌面应用。
现有的桌面开发技术 • C++ • VC / VB / C# •
Delphi • Java • Python • Qt • Adobe AIR
Hello World Windows Forms
QML
Java GUI
Delphi
C++
None
node-webkit
node-webkit特点: • 使用web技术开发,HTML5、CSS3、JS、 WebGL。 • 在网页中使用Node.js。 • 跨平台运行,兼容Linux,Mac OSX和 Windows。
开始 node-webkit 创建 index.html: 创建 package.json:
开始 node-webkit 如何运行: 下载你所属系统对应的nw二进制文件; 执行命令: //指定app目录 $ nw path_to_app_dir 或者
//把app目录压缩成zip文件并重命名为app.nw $ nw path_to_app.nw Tips:可以直接把nw文件放入项目根目录下,运行nw文件就能运行程序, 开发阶段推荐这种方式。
开始 node-webkit
快速入门 – package.json
快速入门 – package.json title(string) width/height(int) toolbar(boolean) icon(string) position(string) min_width/min_height(int) max_width/max_height(int)
as_desktop(boolean) resizable(boolean) always-on-top(boolean) fullscreen(boolean) frame(boolean) show (boolean) ......
快速入门 – Native API 获取当前窗口对象: // Load native UI library
var gui = require('nw.gui'); var win = gui.Window.get(); 最小化窗口: win.minimize(); // 监听最小化事件 win.on('minimize', function() { console.log('Window is minimized'); }); // 取消监听 win.removeAllListeners('minimize');
快速入门 – Native API 打开新窗口: var new_win = gui.Window.get( window.open('https://github.com')
); 关闭窗口: win.close(); 监听关闭窗口: win.on(‘close’, function () { //TODO })
快速入门 – 无框窗口 package.json Index.html
原生UI – 无框窗口
快速入门 – 右键菜单
快速入门 – 系统托盘
快速入门 — 设置logo图标 Package.json: Inno Setup: 勾选创建桌面图标,修改iss文件 Mac: 修改:Contents/Resources/app.icns
快速入门 – 更多Nactiv API • Clipboard(剪切板) • File dialogs(文件对话框) •
Shell – openExternal(URI) 在系统浏览器打开链接 – openItem(file_path) 使用默认文件编辑器打开 文件 – showItemInFolder(file_path) 在文件管理器中 显示文件
打包你的应用 • 第一步:打包项目文件 把项目文件打包成一个zip文件,并把后缀重命名为nw,如 app.zip app.nw。注意:package.json文件必须在根目录下。 目录结构参照: app.nw |--
package.json `-- index.html `-- js `-- css `-- img ...
打包你的应用 • 第二步:创建可执行文件 Windows: $ copy /b nw.exe+app.nw app.exe Linux:
$ cat /usr/bin/nw app.nw > app && chmod +x app
打包你的应用 • 第二步:创建可执行文件 Mac OS X: 下载node-webkit.app文件,使用包管理方式打开,把 项目目录整个到Contents/Resources目录下,并重命名 为app.nw(如果想要更快地启动速度,可以使用zip打 包后的app.nw文件)。
需要修改的文件: – Contents/Resources/app.icns app 图标 – Contents/Info.plist 苹果软件包说明文件
打包你的应用 别忘了nw.pak文件。 Windows下还需要icudt.dll。
打包你的应用 • 第三步:创建软件安装包
打包你的应用 • 第三步:创建安装包 Windows:Inno Setup http://www.jrsoftware.org/isinfo.php Ubuntu/Debian:Debreate http://debreate.sourceforge.net Mac:重命名node-webkit.app即可。
打包你的应用 Inno Setup
打包你的应用 Debreate
The End!?
None
什么是Node.js? Node.js是一个可以快速构建网络服务及应用的平 台。该平台的构建是基于Chrome's JavaScript runtime,也就是说,实际上它是对GoogleV8引 擎(应用于Google Chrome浏览器)进行了封装。 简单的说,Node.js是服务器端的JavaScript,它允 许在后端(脱离浏览器环境)运行JavaScript代码。 Node入门:http://www.nodebeginner.org/index-
zh-cn.html
Node.js API • HTTP • HTTPS • Net • TLS/SSL
• UDP/Datagram • Stream • DNS • Domain
Node.js API • Process • Child Processes • C/C++ Addons
• OS • File System • Crypto (加密) • ……
Node.js – 第三方组件 安装:npm install <name> https://npmjs.org/
node-webkit中如何使用Node.js
node-webkit中如何使用Node.js
在项目中使用第三方组件 $ cd /path/to/your/app $ mkdir node_modules $ npm install
jade
编译C/C++原生组件 node-gyp: Node.js native addon build tool https://github.com/TooTallNate/node-gyp How to
build: $ npm install -g node-gyp $ cd my_node_addon $ node-gyp configure $ node-gyp build Use: var addon = require('./build/Release/addon'); More: http://nodejs.org/api/addons.html
在node.js中运行.NET Edge.js https://github.com/tjanczuk/edge An edge connects two nodes. This edge
connects node.js and .NET. V8 and CLR. Node.js, Python, and C# - in process. 安装: $ npm install edge
在node.js中运行.NET sample.js: Run:
在node.js中运行.NET //引入文件 var add7 = edge.func(__dirname + '/add7.csx'); //引入dll var
clrMethod = edge.func('My.Edge.Samples.dll');
node-webkit 可以做什么?
案例展示 • Fawave Desktop
案例展示 • Reditr - reddit client.
案例展示 • Docular - an open-source and cross-platform editor for
markdown documents!
案例展示 • CSS Shack - create Layers, and export them
into a single CSS file.
案例展示 • CATS - an IDE for TypeScript developers.
案例展示 Koala – 前端图形编译工具,支持Less、Sass、CoffeeScript。 项目主页:http://koala-app.com/
None
调查:大家都如何使用LESS & Sass • 命令行 lessc styles.less > styles.css sass
--watch style.scss:style.css • GUI图形工具 WinLess、Simpless、Codekit、Scout
新工具推荐 - Koala • 多语言支持:Less、Sass、CoffeeScript、Compass。 • 实时编译:当文件改变时自动执行编译,无需人工操作。 • 编译选项:可以设置编译选项。 •
代码压缩:Less & Sass支持编译后自动代码压缩. • 错误提示:右下角弹窗提示错误位置。 • 跨平台:windows、linux、mac完美运行。
如何使用? • 添加项目 • 编写代码 • Done
功能对比: 多语言支持 编译选项 错误提示 系统支持 价格 Winless LESS Windows Free
Simpless LESS Free Scout Sass Free Codekit Mac $25 Koala Free
Github:https://github.com/oklai/koala
Links Node-webkit: https://github.com/rogerwang/node-webkit Google Group: https://groups.google.com/forum/#!forum/node-webkit Node.js: http://nodejs.org Node入门: http://www.nodebeginner.org/index-zh-cn.html
Npmjs: https://npmjs.org Koala: http://koala-app.com
The End & Thanks