首先,我不感兴趣的专业做这个。 我是一个web开发人员,我的一个同事最近离开了Spotify的,并表示他将主要在JavaScript中工作Spotify的桌面应用。 他说,使用“铬框架”和这里的一切都像一个Web应用程序(HTML / JS / CSS)完成的。
作为Web开发谁没有内置任何桌面,这是个好消息。 如果我可以用我已经知道的技术并加以实施某种形式的“帧”内,仍然能够建立一个窗口或更好的跨平台的应用程序。
我知道我没有提到关于数据库的任何东西,但即使是一个简单的Hello World的桌面与Web技术的应用将是巨大的走了。
那么,如何去这件事吗? 究竟是什么,我需要/不需要知道?
你可以用钛桌面开发开始。 您还可以看看铬嵌入式框架 。 它基本上是基于铬web浏览器控制。
它是用C ++编写,所以你可以做你想做的低级别操作系统的东西(低吼,托盘图标,访问本地文件,COM端口等)在容器中的应用程序,然后将所有的应用程序逻辑和GUI在HTML / JavaScript的。 它可以让你拦截任何HTTP请求或者服务于当地的资源或者执行一些自定义操作。 例如,为了请求http://localapp.com/SetTrayIconState?state=active可以由容器被拦截,然后调用++功能来更新托盘图标℃。
它还允许您创建一个可以直接从JavaScript调用的函数。
这是非常困难的,直接在CEF调试JavaScript。 还有像萤火虫就都没有支持。
你也可以尝试AppJS.com (有助于建立桌面应用程序。适用于Linux,Windows和Mac使用HTML,CSS和JavaScript)
此外,由于在由@Clint,指出了球队brackets.io (的Adobe)使用铬嵌入式框架,使上手更容易创建一个真棒壳。 这就是所谓的支架外壳: github.com/adobe/brackets-shell这里了解更多关于它: clintberry.com/2013/html5-desktop-apps-with-brackets-shell
NW.js
(以前称为节点的webkit)
我建议NW.js如果您熟悉节点或使用JavaScript的经验。
NW.js是基于铬和node.js中的应用程序运行时
特征
- 写在现代HTML5,CSS3,JS和WebGL应用
- 针对Node.js的API和所有的第三方模块完全支持。
- 性能好:节点和WebKit在同一个线程中运行:函数调用是由简单的; 对象是相同的堆,并且可以只是相互引用
- 易于打包和分发应用程序
- 可在Linux,Mac OS X和Windows
你可以找到NW.js回购这里 ,和一个很好的介绍NW.js 这里 。 如果你喜欢学习Node.js的 ,我会建议这所以用了很多很好的联系张贴。
Awesomium可以很容易地在你的C ++或.NET应用程序中使用HTML UI
更新
我以前的答案现在已经过时。 这些日子里,你会疯狂不考虑使用电子本。 许多流行的桌面应用程序已经开发在它的上面。
这似乎是HTML的解决方案/ JS / CSS的桌面应用程序都没有供不应求。
一种解决方案我刚刚碰到是TideSDK: http://www.tidesdk.org/ ,这似乎非常有前途,看文档。
您可以使用Python,PHP和Ruby开发,并将其打包为Mac,Windows或Linux。
对不起,爆你的泡沫,但Spotify的桌面客户端 只是一个基于Webkit的浏览器 。 当然,它暴露了具体的附加功能,但它只能运行JS和渲染HTML / CSS,因为它有一个JS引擎以及铬渲染引擎。 这不会帮助你编写一个客户端的web应用程序和部署到多个平台。
你正在寻找的是类似煎茶触摸 -一个框架,允许HTML5应用被部署本地到iOS,Android和黑莓设备。 它基本上作为某些API调用和特定于设备的功能性可用之间的中介。
我没有任何经验, Appcelerator的 ,咬它似乎正是这样做的-并获得非常有利的评论在网上。 你应该给它一个去(除非你想回到1999年,并推出MS HTA )
我知道有流体和棱镜 (还有其他的,这是我以前用的),让你一个网站加载到什么看起来像一个独立的应用程序。
在Chrome中,您可以为网站创建桌面快捷方式。 (你这样做,从在Chrome,你不能/不应该包与您的应用程序)浏览器内嵌框架是不同的:
谷歌浏览器内嵌框架是一个插件,专门为开源Chromium项目的Internet Explorer; 它带来的谷歌浏览器的开放网络技术到Internet Explorer。
你需要有某种类似的包装为你的web应用,然后剩下的就是你习惯的网络技术。 您可以使用HTML5 本地存储来存储数据,而应用程序是脱机。 我想你甚至可以使用SQLite的工作。
我不知道你将如何去访问操作系统的特定功能,但。 我上面描述具有相同的限制,任何“正规”的网站。 但愿这给你从哪里开始某种指导。
你可以建立与Adobe AIR ...的Javascript应用程序http://www.adobe.com/products/air.html
CEF提供很大的灵活性和定制选项。 但是,如果目的是快速开发节点的WebKit也是一个不错的选择。 节点的网络套件还提供了直接从DOM调用节点模块的能力。
如果没有集成任何本机模块节点的Webkit可以提供更好的里程。 与本机模块的C / C ++或甚至C#它与CEF更好。