除了 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。