Fiz*_*han 74 node-webkit electron
我们计划构建跨平台桌面应用程序.我们发现Node-Webkit是我们的完美选择.但GitHub开发了自己的框架,称为Electron,而不是使用Node-Webkit.
他们之间有什么区别?
小智 74
Electron有一个页面解释与node-webkit的不同之处:
https://github.com/atom/electron/blob/master/docs/development/atom-shell-vs-node-webkit.md
与Node-Webkit一样,Electron提供了一个用JavaScript和HTML编写桌面应用程序的平台,并且具有Node集成以授予对网页中低级系统的访问权限.
但是这两个项目之间也存在根本区别,这使得Electron成为与Node-Webkit完全独立的产品:
1 - 申请的进入
在NW.js中,应用程序的主要入口点是网页或JS脚本.您在package.json中指定html或js文件,并在浏览器窗口中打开它作为应用程序的主窗口(如果是html入口点)或执行脚本.
在Electron中,入口点是JavaScript脚本,而不是直接提供URL,您需要手动创建浏览器窗口并使用相应的API加载html文件.您还需要监听窗口事件以决定何时退出应用程序.
所以Electron更像Node.js运行时,而API更低级,你也可以使用Electron进行web测试,如phantomjs,
2 - 构建系统
为了避免构建整个Chromium的复杂性,Electron使用libchromiumcontent访问Chromium的Content API,libchromiumcontent是一个包含Chromium Content模块及其所有依赖项的共享库.因此用户不需要强大的机器来构建原子壳.
3 - 节点集成
在Node-Webkit中,网页中的节点集成需要修补Chromium才能工作,而在Electron中我们选择了一种不同的方式将libuv循环集成到每个平台的消息循环以避免攻击Chromium,请参阅node_bindings代码了解如何完成.
4 - 多语境
如果您是经验丰富的Node-Webkit用户,您应该熟悉Node上下文和Web上下文的概念,这些概念是由于Node-Webkit的实现方式而发明的.
通过使用Node的多上下文功能,Electron不会在网页中引入新的JavaScript上下文.
源代码保护
Electron正在使用asar打包其应用程序,其中包含应用程序的不受保护的源代码.这使得应用程序1可以在用户不知情的情况下提取应用程序2并注入易受攻击的脚本.您可以在GitHub上查看此项目,以查看如何操作Slack应用程序的示例.至于现在,Electron团队没有任何实施源代码保护支持的计划.
NW.js已经内置支持编译源代码保护的二进制文件.
| 归档时间: |
|
| 查看次数: |
32026 次 |
| 最近记录: |