如何使用 HTML/CSS/JavaScript 开发桌面应用程序?

IT技术 javascript html css desktop-application
2021-02-25 22:09:17

首先,我对专业地做这件事不感兴趣。我是一名网络开发人员,我的一位同事最近离开了 Spotify,他说他将主要使用 JavaScript 为 Spotify 桌面应用程序工作。他说它使用“Chrome 框架”,里面的一切都像一个网络应用程序(HTML/JS/CSS)一样完成。

作为从未为桌面构建任何内容的 Web 开发人员,这是个好消息。如果我可以使用我已经知道的技术并在某种“框架”中实现它们,并且仍然能够构建 Windows 或更好的跨平台应用程序。

我知道我没有提到任何关于数据库的内容,但即使是一个简单的带有 Web 技术的 hello world 桌面应用程序也能很好地开始。

那么如何解决这个问题呢?我到底需要/需要知道什么?

6个回答

您可以从用于桌面开发的 Titanium 开始。你也可以看看Chromium Embedded Framework它基本上是一个基于铬的网络浏览器控件。

它是用 C++ 编写的,因此您可以在容器应用程序中执行您想要的所有低级操作系统内容(Growl、托盘图标、本地文件访问、com 端口等),然后在 html/javascript 中执行所有应用程序逻辑和 gui。它允许您拦截任何 http 请求以提供本地资源或执行一些自定义操作。例如,容器可以拦截http://localapp.com/SetTrayIconState?state=active的请求,然后调用 C++ 函数更新托盘图标。

它还允许您创建可以直接从 JavaScript 调用的函数。

在 CEF 中直接调试 JavaScript 非常困难。不支持 Firebug 之类的东西。

你也可以试试AppJS.com ( Help to build Desktop Applications. for Linux, Windows and Mac using HTML, CSS and JavaScript)

此外,正如@Clint 所指出的,brackets.io (Adobe)的团队使用 Chromium 嵌入式框架创建了一个很棒的 shell,这使得它更容易上手。它被称为括号外壳:github.com/adobe/brackets-shell在此处了解更多信息:clintberry.com/2013/html5-desktop-apps-with-brackets-shell

此外,我开始开发 Kontena コンテナgithub.com/jhg/kontena,用于开发基于 CEF、PhoneGap、Adobe 的 Backet.io、AppJS 等的 Win32、Linux、类 Unix、Mac 和 SmartPhone 的解决方案. 它是如此不稳定,现在只是一个原型以获得 MVP,是用 Python 编写的用于测试概念,但将使用 QT5(现在使用 QT4)将代码翻译成 C++/C,并且当在 C++/C 中时开始翻译 mobil支持。
2021-04-18 22:09:17
CEF 内置了 chrome 开发工具,因此您可以使用它来调试 js。AppJS 还可以使用 nodejs API 对操作系统进行低级别访问。
2021-04-19 22:09:17
Bracket.io (Adobe) 的团队使用 Chromium 嵌入式框架创建了一个很棒的 shell,这使得它更容易上手。它被称为括号外壳:github.com/adobe/brackets-shell 在此处了解更多信息:clintberry.com/2013/html5-desktop-apps-with-brackets-shell
2021-05-01 22:09:17
我目前正在使用 CEF 和 Eclipse 作为开发工具,并且可以通过将 --remote-debugging-port=8080 传递给程序 args 的运行配置来将 CEF 链接到 Chrome 开发人员工具,然后在 Chrome 中转到 localhost:8080 . 所以请删除这部分 - 直接在 CEF 中调试 JavaScript 非常困难。不支持 Firebug 之类的东西。——
2021-05-05 22:09:17
@JHG 干得好.. 让我们知道它何时正式发布并修复了错误
2021-05-06 22:09:17

NW.js

(以前称为 node-webkit)

如果您熟悉 Node 或有 JavaScript 经验,我会推荐NW.js。

NW.js 是一个基于 Chromium 和 node.js 的应用运行时。

特征

  • 用现代 HTML5、CSS3、JS 和 WebGL 编写的应用程序
  • 完全支持 Node.js API 及其所有第三方module。
  • 良好的性能:Node 和 WebKit 在同一线程中运行:函数调用变得简单;对象在同一个堆中,只能相互引用
  • 易于打包和分发应用程序
  • 适用于 Linux、Mac OS X 和 Windows

你可以找到NW.js回购这里,和一个很好的介绍NW.js这里如果你喜欢学习Node.js,我会推荐这篇文章,里面有很多很好的链接。

@JānisGruzis 不,您的应用程序附带了 NW.js 二进制文件
2021-04-27 22:09:17
但这不能在不要求他们安装 node 和 node-webkit 的情况下在人们之间分发,对吗?
2021-05-09 22:09:17
借调。很棒的工具。
2021-05-13 22:09:17

Awesomium使您可以轻松地在 C++ 或 .NET 应用程序中使用 HTML UI

更新

我之前的回答现在已经过时了。这些天来,如果不考虑使用Electron来做这件事,你会很疯狂许多流行的桌面应用程序都是在它的基础上开发的。

注意:AppJS已弃用,不再推荐。

看看NW.js 吧

@DanEsparza 谢谢,我改进了我的答案
2021-04-21 22:09:17
这似乎已被 appjs 创建者弃用
2021-05-14 22:09:17

HTML/JS/CSS 桌面应用程序的解决方案似乎供不应求。

我刚刚遇到的一个解决方案是 TideSDK:http ://www.tidesdk.org/ ,看起来很有希望,查看文档。

您可以使用 Python、PHP 或 Ruby 进行开发,并将其打包为 Mac、Windows 或 Linux。

看起来很有希望,但看起来不再开发了。核心团队现在正在开发一种叫做 TideKit 的东西,但他们需要很长时间才能发布它——而且它会花钱:(
2021-04-20 22:09:17
是的,可惜。不过,在我回答时,它确实看起来很有希望。我想这就是他们对有关推荐内容的问题不屑一顾的原因之一。
2021-05-12 22:09:17