153

现在 TideSDK 实际上已经死了,我一直在寻找替代的“包装器”来将 HTML/CSS/JS 应用程序作为独立的桌面应用程序运行。到目前为止,我遇到的三个可行选项是NW.js(以前称为 node-webkit)、brackets-shellElectron(以前称为 atom-shell)。

问题在于,在功能集、兼容性等方面,这三者之间似乎没有足够完整的比较。我希望将其转变为关于(客观)差异的或多或少的规范线程三者,特别是关于:

  • 平台支持;操作系统、依赖项等
  • 语言特性支持,就 HTML5、CSS3 和 JavaScript 而言。想一想“HTML5 视频是否有效,如果可以,有哪些编解码器可用?”
  • 非标准的额外功能,例如托盘图标、弹出通知和操作系统渲染的菜单栏。
  • 可扩展性;例如。能够“插入”本机代码、与 Node.js 对话等。
  • 建筑; 特别是影响开发人员日常使用的架构差异。
  • 调试;包括开发工具,与常用工具的兼容性node-inspector等。
  • ... 等等。

作为应用程序开发人员,在他们之间做出选择时,重要的客观、技术差异是什么?

4

5 回答 5

43

大约两个月前我做了类似的研究,最后我选择了 node-webkit。node-webkit 最大的优势是 node.js 和 npm。npm 的包管理非常好,node 的文件系统访问做得很好。

Brackets-shell 看起来很有趣,但除了一个不错的 IDE 之外,我并没有真正明白是什么让这个 IDE 比其他的好或更好。他们非常清楚“括号外壳仅由括号项目维护使用”,尖叫声向我跑来。

https://github.com/adobe/brackets-shell#overview

Atom-shell 似乎最近很活跃,但它看起来很像括号,因为它们实际上是在编写,而编辑器/IDE 恰好附加到 webkit 运行时。它也建立在 node.js 之上。这个的缺点是很难在没有提醒你中学化学的情况下在线搜索东西。

我真的不想要一个新的编辑器,而且大多数程序员已经有了他们最喜欢的。对于实际的应用程序开发,它们的工作方式几乎相同,而且应该,因为它们都使用 webkit。你基本上把 90-95% 的内容写成一个网站,然后处理原生部分和一些配置。

这些对于所有三个平台都是正确的——在 Windows、Mac 和 Linux 语言支持上运行——HTML5、CSS3 和 Javascript:因为它们运行 javascript,你可以下载和运行几乎任何你想要的库/框架。

webkit 最大的警告是编解码器支持。通常你会遇到非免费视频编解码器的问题,除非你重建 dll/so 来支持它们。例如,随附的 node-webkit 不会播放 mp4 视频。

于 2014-06-09T15:09:11.410 回答
40

过去几天我一直在玩Atom-Shell ,到目前为止我很喜欢它。

关于它最好的部分是它得到了 GitHub 的支持。这应该可以让你长期适应这个平台,特别是如果它获得了大量的追随者。通过与StrongLoop签订的合同直接改进 Node.js 也成为可能, StrongLoop是 Node.js 的主要贡献者(他们声称雇用的 Node.js 核心开发人员比任何其他公司都多,甚至是 Joyent)。

我也发现上手相当舒服。我花了大约一天的时间来学习这个结构并让我的第一个概念验证运行起来。很酷。


要点:

  • 平台支持: Windows、Linux、Mac OSX(更多信息在这里
  • 语言功能支持: HTML5、CSS3、JS via Chromium - 到目前为止,零问题,但我没有专门测试视频。
  • 本机功能:本机应用程序菜单、任务托盘支持、全局热键、协议处理程序支持(到目前为止我已经看到)
  • 可扩展性:出色的 Node.js 集成,客户端和服务器都可以“需要”Node.js 模块和本机。我还成功地测试了Bower库(包括 jQuery),没有问题。
  • 架构:其他方面都涉及到,但总的来说它非常流畅。

更新(14 年 11 月 25 日): 我还没有以任何官方身份找到 Atom-Shell 的用例,但我已经用它构建了一些小应用程序供我自己使用,最复杂的是一个拉动应用程序我从我的 PM 软件中记录时间并创建 Paypal 发票。

我对该平台的看法仍然是积极的。这真是太棒了。

在我的开发票应用程序中,我成功引入了 Bootstrap 3 的仪表板示例模板和一些节点模块(bluebird、Paypal SDK、Teamwork PM Client)来创建一个稍微复杂的应用程序。我花了几天时间完成了它的工作。

我真的想不出任何关于 Atom-Shell 的负面评价,它可靠、稳定、快速且易于编码。我希望这可以帮助别人。

于 2014-08-11T13:27:22.660 回答
22

除了完全支持 Web 标准外,NW.js 还支持一系列用于原生应用程序开发的非标准功能,包括:

在 wiki 中可以看到更多内容,包括菜单、托盘等。

于 2015-05-06T23:40:36.110 回答
10

我使用括号壳已经有一段时间了,以下是我的一些发现:

  • 括号外壳主要是作为括号 IDE 项目下的外壳开发的,但该项目可以运行任何 Web 应用程序。您只需要将其指向您自己的 html 页面。克林特贝瑞写了一个关于这样做的优秀教程:http: //clintberry.com/2013/html5-desktop-apps-with-brackets-shell/
  • 该项目由 Adob​​e 提供支持,并且有很多活动
  • 文档可能会更好

  • 平台支持它们支持 Windows、Mac 和 Linux。还可以创建安装程序包。我只在 Win 和 Mac 上测试过,效果很好。

  • 功能支持html5、css3、js。Html5 视频不能开箱即用,但很容易启用(默认情况下,ffmpegsumo.dll 不会复制到安装程序中,如果您更改脚本复制它会起作用)。
  • 本机功能菜单栏,“打开文件”,文件系统访问。我没有使用任何这些,因为我需要的只是与节点进程的通信。
  • 内置了 nodejs 的可扩展性,您可以从 Web 应用程序与 node 进行通信。通过这种方式,您可以使用节点访问文件系统等。
  • 架构该项目设置良好,在 shell 项目和您自己在其中运行的 Web 应用程序之间保持了很好的分离。在您自己的应用程序中,可以使用全局 appshell 对象来访问括号功能(文件系统访问、与节点进程的通信......)。
于 2014-08-21T08:57:33.293 回答
5

需要注意的一件事(如果您关心的话)是 Electron 官方不支持 Windows Vista。Vista 的市场份额大约在 OSX 10.9 和 10.10 之间(两者都得到 Electron 的完全支持)。在 2017 年之前,微软仍然支持 Vista。

NW.js 在 Vista 以及 OSX 10.9+ 中运行良好。NW.js 适用于 Ubuntu、Debian、Zorin、Manjaro、Arch 和大多数其他基于 Debian 的 Linux 操作系统。Electron 拒绝 PR 修复其平台上的 Ubuntu 特定错误,这令人担忧。

NW.js 也适用于 XP。目前 18% 的市场仍在 XP 上。因此,如果您的桌面应用程序更通用,或者想要访问仍在 XP 上的后期采用者,您可能最好使用 NW.js (0.14.7),因为 Electron 仅支持 Win 7 及更高版本。

如果您使用 NW.js 0.12.3,您还可以支持 OSX 10.6+ 和非常旧版本的基于 Debian 的 Linux 操作系统,例如 Ubuntu 和 Win XP+。建议您只为那些遗留系统进行特殊构建,并为较新的操作系统使用较新版本的 NW.js。

于 2015-01-02T15:02:07.737 回答