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

TK1*_*123 187 html javascript css desktop-application

首先,我对这方面的专业兴趣不感兴趣.我是一名网络开发人员,我最近离开Spotify的同事,并表示他将主要使用JavaScript为Spotify桌面应用程序工作.他说它使用"Chrome框架",内部的所有内容都像网络应用程序(HTML/JS/CSS)一样.

作为一个从未为Desktop构建任何东西的Web开发人员,这是个好消息.如果我可以使用我已经知道的技术并在某种"框架"内实现它们,并且仍然能够构建一个窗口或更好的跨平台应用程序.

我知道我没有提到有关数据库的任何内容,但即使是一个简单的hello world桌面应用程序也可以使用Web技术.

那怎么一个呢?究竟我需要/需要知道什么?

bla*_*d Ψ 73

您可以从Titanium for desktop dev开始.您还可以查看Chromium Embedded Framework.它基本上是基于铬的Web浏览器控件.

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

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

在CEF中直接调试JavaScript非常困难.对Firebug这样的东西没有任何支持.

您也可以尝试AppJS.com(帮助使用HTML,CSS和JavaScript为Linux,Windows和Mac构建桌面应用程序)

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

  • CEF内置了chrome dev工具,因此您可以使用它来调试js.AppJS还使用nodejs API对操作系统进行低级访问. (3认同)
  • Bracket.io (Adobe) 的团队使用 Chromium 嵌入式框架创建了一个很棒的 shell,这使得它更容易上手。它被称为括号外壳:https://github.com/adobe/brackets-shell/ 在此处了解更多信息:http://clintberry.com/2013/html5-desktop-apps-with-brackets-shell/ (2认同)

Raw*_*awa 33

NW.js

(以前称为node-webkit)

如果您熟悉Node或者使用JavaScript,我会建议NW.js.

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

特征

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

你可以在这里找到NW.js回购,以及这里对NW.js的一个很好的介绍.如果您喜欢学习Node.js,我会推荐这篇 SO帖子,里面有很多很好的链接.

  • 借调.伟大的工具. (2认同)

Ron*_*rby 27

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

更新

我之前的回答现在已经过时了.这些天你会疯狂不去研究使用Electron.许多流行的桌面应用程序都是基于它开发的.


Siw*_*申思维 16

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

看看NW.js代替.

  • 这似乎已被appjs创建者弃用 (3认同)

myd*_*rms 9

似乎HTML/JS/CSS桌面应用程序的解决方案并不缺乏.

我刚刚遇到的一个解决方案是TideSDK:http://www.tidesdk.org/ ,这看起来非常有前景,正在查看文档.

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