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

2023-12-24

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

最近,我看到一个有趣的方法来解决这个问题:加速器 http://www.appcelerator.com/products/titanium-desktop/我喜欢它的基本概念,但我不想依赖他们的服务。相反,我想完全控制加载我的应用程序的 WebKit 程序。

有没有合适的开源 WebKit 框架来构建桌面应用程序?桌面集成功能,例如 Growl 支持等受到赞赏。

Regards,

Stefan


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


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

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

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

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

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

如果您有兴趣在 C++ 或 .Net 应用程序中嵌入 Chromium,还有敬畏者 http://www.awesomium.com/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(HTML + JS) 桌面客户端框架 的相关文章

随机推荐

  • C# HttpWebRequest POST 不发送参数

    我正在尝试使用下一个代码执行带有参数的 POST 请求 我正在使用本地 php 脚本来接收参数 但是当我执行请求时 php 脚本没有接收从我的 C 函数发送的参数 它说 注意 未定义索引 detalle 注意 未定义索引 method pa
  • Glassfish - 上传图像 - 正确执行

    我使用的是最新的 glassfish 3 1 2 所以不需要 apache FileItem 并且 getPart 没有错误 我读到上传图像的最佳实践是将它们保存在文件系统上 请参阅here https stackoverflow com
  • 如何查看包的历史记录?

    如何查看 Npm 注册表中包的历史记录 我特别想知道什么时候https npmjs org package npm https npmjs org package npm1 1 2版本发布 你可以做npm view npm您可以在以下位置找
  • 删除as3中的空格

    如何从 as3 中的字符串中删除空格 我希望能够删除所有回车符 空格 制表符等 您可以使用正则表达式 var rex RegExp s r n gim var str String This is a string str str repl
  • 即使 Ant 任务失败,Ant 也会成功

    我一定缺少一个简单的设置 所以请原谅我 但我有两次注意到我的坏蚂蚁任务不会导致构建失败 例如 当源文件不存在时 Ant 复制 构建成功 Ant 解压缩 当任务报告 无法写入文件 或类似消息时 构建成功 Ant 执行错误 语法无效 构建成功
  • 如何在WPF中叠加图像?

    我有两个图像需要重叠 例如 我需要在实心矩形顶部有一个实心圆 所以 我可以看到整个圆 但只能看到矩形的角 我不希望圆圈是透明的 原本的circle png没有矩形边框 它的边界仅沿着圆的边界 因此 理想情况下 整个圆不应与矩形重叠 这是显示
  • 员工工资查询错误

    我正在尝试制作一家公司的薪资报告 我想通过使用如下查询来显示该公司的所有员工 select tab1 name tab1 job tab1 salary tab2 discount days tab1 salary tab1 salary
  • cmd中转义特殊字符

    我有一个 Windows bat 脚本 在其中尝试运行参数中包含密码的命令 我希望能够使用的密码是 gt lt 从我读到的here http ss64 com nt syntax esc html 我应该逃走 lt gt with 根据我的
  • glDrawArrays 上的 OpenGL ES EXC_BAD_ACCESS

    我在 OpenGL ES 1 1 中为我正在构建的 iPhone 游戏进行渲染时遇到问题 简而言之 我正在渲染 3 个项目 背景 效果很好 许多球形物体 效果很好 一个改变大小的简单线圆 我在这里遇到问题 基本上 当我在圆上调用 drawA
  • 如何生成 Identity Server 签名证书

    在身份服务器示例中 我们发现这样的代码Startup cs var certFile env ApplicationBasePath idsrv3test pfx var signingCertificate new X509Certifi
  • C++ 二进制文件和迭代器:使用 ifstreambuf_iterator 摆脱 1:1 的束缚?

    这个答案 https stackoverflow com a 13665583 2485710指出 C 不太适合对二进制文件进行迭代这一事实 但这正是我现在所需要的 简而言之 我需要以 二进制 方式操作文件 是的 所有文件都是二进制的 即使
  • 对 SVG 组进行动画处理

    我目前有以下 SVG
  • 使用 Lua 注册闭包

    我不想使用 lua CFunction 签名来编写从 Lua 调用的方法 而是使用我自己的函数签名来简化导出过程 void foo call t call int a char b char c table t d reading argu
  • Angular Reactive 表单嵌套 FormGroup 中的空值

    我有一个带有嵌套表单组的角反应表单 this form new FormGroup name new FormControl address new FormGroup line1 new FormControl line2 new For
  • Modernizr 可以异步加载脚本但按顺序执行它们吗?

    我正在尝试 Modernizer load 我有这个 Modernizr load load js jquery 1 6 1 js js jquery tools min js js myscript js 如果我理解正确的话 我可以使用这
  • 使用 OWIN 的混合模式身份验证

    我正在构建一个 MVC 5 应用程序 我需要根据 AD 和 SQL 数据库或 Web 服务对人员进行身份验证 要求是 如果一个人登录到公司网络或通过 VPN 连接 我必须登录他们而不要求提供凭据 如果用户通过互联网访问网站或没有 AD 帐户
  • 打印所需数量的倒​​星图案[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 倒星图案由给定行数的星号组成 其中下一行少一个星号 直到最后一行剩下一个星号 每五个星号替换为 see image https i stac
  • Android AOSP 汽车模拟器

    我正在尝试构建一个汽车模拟器 因为 Android studio 3 5 未检测到系统映像 我已经在Android 8和9中尝试过并下载了所有工具 如何在AOSP中构建汽车模拟器 您需要 Mac 或 Linux 来构建模拟器 执行以下站点中
  • 使用不同格式选项实现 __str__ 方法的 Pythonic 方法是什么?

    我想创建一个 str 根据用户选择创建各种格式的字符串的方法 我想出的最好的办法就是制作一个 str kwargs 方法 这似乎工作正常 但它不兼容str obj or print obj 换句话说我必须使用print obj str st
  • (HTML + JS) 桌面客户端框架

    我计划为 Windows 和 Mac 编写一个桌面客户端 它将由网络技术 HTML JS 提供支持 因此 它应在用户桌面上的 WebKit 引擎上运行 最近 我看到一个有趣的方法来解决这个问题 加速器 http www appcelerat