javascript - (HTML + JS) 桌面客户端框架

标签 javascript html webkit desktop-application

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

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

是否有用于构建桌面应用程序的合适的开源 WebKit 框架?感谢 Growl 支持等桌面集成功能。

问候,

斯特凡


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

最佳答案

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

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

我使用 XULRunner 编写了几个桌面应用程序。几乎所有应用程序的代码都是 HTML/CSS/Javascript,但我包含了 Python 框架(通过 pyXPCOM 和 pyXPCOMext)并编写了一个薄层,将一些 Python 功能暴露给 Javascript。 XULRunner 随附的 Mozilla 组件免费为您提供了大量功能,但如果您发现自己需要更多功能或功能齐全的编程库,Python 可以满足您的需求。也有对 Java 的绑定(bind)。或者,如果您想使用 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 不是将节点的事件循环与 Chromium 的事件循环合并,而是在单独的进程中启动它们,并混合使用同步和异步进程间消息在它们之间进行通信。

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

关于javascript - (HTML + JS) 桌面客户端框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1252498/

相关文章:

google-chrome - Chrome 中的边框半径/溢出问题

javascript - javascript/actionscript 真的通过引用传递吗?

javascript - 使用 JQuery 浏览按钮

javascript - 选择刚刚单击的项目的下一个兄弟

javascript - 需要在多个 Div 框 onClick 上使用函数

jquery - 使用 JQuery 选择随机背景

javascript - 状态未在 componentDidMount 中更新

html - CSS:百分比和 vh/vw 一起,奇怪的结果

c++ - 这个宏语句是合法的 C++ 还是其他什么?如果它是合法的,它是如何工作的

javascript - 文本和背景上的 CSS 过渡