【问题标题】:Framework for (HTML + JS) Desktop Client(HTML + JS) 桌面客户端框架
【发布时间】:2010-11-18 03:49:08
【问题描述】:

我打算为 Windows 和 Mac 编写一个桌面客户端。它将由网络技术(HTML + JS)提供支持。因此它应该在用户桌面上的 WebKit 引擎上运行。

最近,我看到了一个有趣的方法来解决这个问题:Appcelerator 我喜欢它的基本概念,但我不想依赖他们的服务。相反,我想完全控制加载我的应用的 WebKit 程序。

有没有像样的开源 WebKit 框架来构建桌面应用程序?桌面集成功能,如 Growl 支持和其他东西,我们很感激。

问候,

斯蒂芬


更新:我不是在搜索 Adob​​e Air ;-)

【问题讨论】:

    标签: javascript html webkit desktop-application


    【解决方案1】:

    除了 Appcelerator,我还知道两个桌面 gui 框架,它们有一个包装 webkit 的浏览器组件:GTK+ 和 Qt。您可以让浏览器组件填充应用程序的窗口,并用 HTML+CSS 编写大部分(或全部)应用程序。如果你喜欢 Python 语言或者它是非常重要的标准库,你可以使用 python 绑定 pyQt 或 pyGTK。

    如果您愿意使用 Gecko 引擎,Prism 的一个更“强大”的替代品是 XULRunner (https://developer.mozilla.org/En/XULRunner)。虽然 Prism 是一组用于 Web 应用程序的轻量级桌面绑定,但 XULRunner 允许您构建一个完整的应用程序,如 Firefox 本身或 Thunderbird 等。虽然许多 XULRunner 应用程序是用 XUL 编写的,但使用 XUL 编写整个应用程序很容易单个 XUL WebBrowser 组件中的 HTML/CSS - 您的 javascript 仍然具有本地桌面应用程序的所有功能。

    我使用 XULRunner 编写了几个桌面应用程序。几乎所有应用程序的代码都是 HTML/CSS/Javascript,但我已经包含了 Python 框架(通过 pyXPCOM 和 pyXPCOMext)并编写了一个薄层,将一些 Python 功能暴露给 Javascript。 XULRunner 附带的 Mozilla 组件免费为您提供了相当数量的功能,但如果您发现自己需要更多功能或功能齐全的编程库,Python 可以解决问题。也有与 Java 的绑定。或者,如果您想使用 C 或 C++ 库,您可以从头开始构建 XULRunner。

    更新:自从我在 2009 年最初编写上述内容以来,一些事情发生了变化。其中之一是 Prism 项目从 Mozilla Labs 中删除,随后在 2011 年底完全停止 (http://www.salsitasoft.com/2011/09/08/discontinuing-webrunner/)。值得一看的另一种选择是https://github.com/rogerwang/node-webkit

    2014 年 12 月更新:另一个最近的选择是 GitHub 的 Atom Shell。它使用 Chromium 的“内容”模块,就像 node-webkit 和 Chromium Embedded Framework(并将其作为独立库发布:https://github.com/brightray/libchromiumcontent)。与 node-webkit 的一个主要区别是,Atom 不是将 node 的事件循环与 Chromium 的事件循环合并,而是在单独的进程中启动它们,并使用同步和异步进程间消息的混合在它们之间进行通信。

    如果您有兴趣将 Chromium 嵌入到 C++ 或 .Net 应用程序中,还有Awesomium

    【讨论】:

    • 对 XULRunner 的好电话。值得指出的是,从 Firefox 3 开始,XULRunner comes with Firefox!只需创建一个使用 Firefox 可执行文件的脚本来启动您的 XUL 应用程序:path/to/firefox -app path/to/application.ini
    【解决方案2】:

    Appcelerator 平台是open source,因此您不必依赖该公司 - 如果您愿意,您可以随时破解自己周围的代码。如果您想要更多控制权,您可以随时 hook directly into WebKit。相当于 AIR/Appcelerator Joel 所指的 Gecko 可能是 Mozilla Prism

    【讨论】:

      【解决方案3】:

      如果您不是绝对致力于 webkit,我记得有一个项目允许您使用 Firefox 引擎做类似的事情。基本上是一个围绕 gecko 渲染器的极简主义窗口以及适用于您的应用程序的 Gears 和桌面快捷方式。不过暂时找不到链接。

      【讨论】:

      • 你在写prism.mozilla.com 吗?几个月前我对其进行了测试,但对我来说它太像浏览器了。嗯,也许我应该定制一些东西。
      猜你喜欢
      • 2013-10-10
      • 2013-04-26
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 2013-07-29
      相关资源
      最近更新 更多