将HTML5应用程序分发为桌面应用程序的解决方案?[关闭]


141

分发基于HTML5的桌面应用程序有哪些解决方案?

我希望能够将HTML5应用程序作为独立的桌面应用程序发布在Windows,OSX和Linux上。我希望人们能够双击我的应用程序图标快捷方式来运行我的程序。

我根本不想显示浏览器窗口,而只显示我的应用程序。这可能吗?


4
Chrome +全屏效果很好
PostMan 2011年

2
Windows上的Chrome浏览器在扳手菜单中提供了“制作应用程序快捷方式”选项。它将在桌面上创建一个链接,该链接打开没有地址栏的标准窗口。
6502

3
您是否还有其他要求,例如访问本地文件或其他通常在浏览器中无法实现的功能?
铁门

76
有人可以解释一下为什么这个问题被标记为非建设性的吗?他在问是否有平台,答案是客观的:是的。并且可以通过一些可能性“实现”,因此,为什么要这样标记呢?
Francesco Belladonna

10
这个问题既相关又涉及主题-如最近的这篇文章所示:clintberry.com/2013/html5-apps-desktop-2013
Per Quested Aronsson

Answers:


75

2014年的HTML5应用

chrome / webkit框架

  • 电子(原原子壳)

    Electron是由GitHub开发的开源库,用于使用HTML,CSS和JavaScript构建跨平台的桌面应用程序。Electron通过将Chromium和Node.js组合为一个运行时来实现此目的,并且可以将应用程序打包为Mac,Windows和Linux。(来源

    github上的人们使用它来提供其代码编辑器Atom作为应用程序。它在官方的atom论坛上有一个文档化的api和一个帮助频道。

  • Node-Webkit,最简单的方法

    node-webkit是基于Chromium和node.js的应用程序运行时。您可以使用node-webkit用HTML和JavaScript编写本机应用程序。它还使您可以直接从DOM调用Node.js模块,并启用一种使用所有Web技术编写本机应用程序的新方式。

    英特尔支持此(?)。有人告诉我它的边缘很粗糙。

  • Brackets Shell,Adobes代码编辑器(和Adobe Edge的基础)的沙箱

    注意:方括号-外壳仅供“方括号”项目使用。尽管确实有人成功将其用作其他项目的应用程序外壳,但我们对此没有提供任何官方支持,并且我们还没有做大量工作来使应用程序外壳易于重用。许多人可能会发现使用诸如node-webkit之类的项目更容易,该项目在设计上更加通用。

    自述文件说,但是仍然有很多人这样做。

框架和工具

  • 建议使用Adobe AIR作为另一个答案。

    Adobe®AIR®运行时使开发人员能够将相同的代码打包到Windows和Mac OS台式机以及iPhone,iPad,Kindle Fire,Nook Tablet和其他Android™设备的本机应用程序中,以超过5亿的移动应用程序商店覆盖范围设备。

  • Sencha是一家为应用程序开发人员销售工具的公司,其中包括html5应用程序开发和分发。

不活跃的方法


7
Mozilla Prism现在不活跃
Harshith合资公司2012年

8
只需使用Adobe Air即可。如果您打算使用任何种类的javascript模板解决方案(例如,车把,小胡子),由于与new function()javascript调用相关的安全性错误,大多数都无法使用。
詹姆斯·帕克

感谢您提供的非常有用的提示!不幸的是,我还没有机会测试上面列出的任何示例。我只是通过研究收集它们。
塞缪尔·赫尔佐格

您可以使应用程序的运行超出安全沙箱的大小。我在KendoUI模板系统中也遇到了问题,并且能够克服它。无论哪种方式,我都从Air切换到Titanium Desktop,但是由于TD的Windows webkit实现在表单元素(输入/下拉列表)方面存在严重问题,因此我正在寻找替代方案)。
Vasco Costa

您可以考虑使用Sentenza Desktop将HTML5 / CSS3 / JS Web应用程序打包到Mac OS X应用程序(.app)中。API库也可用。它不需要任何框架(如Adobe Air或TideSDK)。支持Mac App Store部署。
Beny


10

您可能需要查看Mozilla的XULRunner。在10000英尺的高度上,FireFox浏览器是XULRunner应用程序(显然是一个非常复杂的应用程序,但是...)。但是XULRunner允许您使用Javascript和XML创建应用程序,而浏览器窗口是其中的一个组件,因此一旦您建立了基本窗口,就可以做几乎所有您想做的事情。

另外,根据您应用程序的复杂程度,有几种“窗口小部件”框架(例如Mac上的Dashboard,Yahoo Widgets,Windows Gadgets)也基本上是HTML运行时。


2
我强烈建议您查看XULRunner。对于您所描述的,它是理想的,并且有据可查。我想,Chrome也可以正常工作,但我没有对此进行研究。
Jared Farrish'2

XUL运行程序是一个很棒的框架,非常灵活,但是正如您所说的那样,没有很好的文档说明。一个新手将不得不承受很多痛苦才能开始工作。
esafwan 2012年

10

一定要检查。就在今天,我使用了功能正常的HTML5应用程序,并进行了一些小的修改就可以将其放入Titanium,并将其打包为Mac,Windows和Linux。

如果您的应用程序需要“服务器端”处理,它还支持PHP,Python和Ruby。


如果您需要预包装的解决方案,我认为这就是答案。
2011年

15
我在Titanium上的使用体验非常糟糕-在外观上看起来很棒,但里面塞满了bug,很快就变得难以使用。我不推荐。
达米安

3
我还认为这将是一个不错的选择,但是:1)我无法使其在Linux(Ubuntu 11.10)中运行简单的“ create-new-project / run”。2)Titanium Desktop正在转换为由COmmunity驱动的项目(这意味着,除非有人接受他们的代码,否则它将死亡)
Luis Lobo Borobia'2

4
我知道这很旧,但是我只是读了这个答案,并花了一些时间直到我发现Titanium Desktop已经死了。因此,不再是一种选择。顺便说一句,我正在考虑创建带有c#和铬嵌入的东西,就像github在他的Windows工具中所做的那样
NicoGranelli 2012年

6
Titanium Desktop已成为TideSDK tidesdk.org
Peacemoon

5

chrome可以做棱镜做的事情,请参阅-工具->创建应用程序快捷方式


不知道... +1
arg20

不幸的是,Mac上没有应用程序快捷方式。
Shane Holloway


3

Adobe AIR旨在让您在提供桌面应用程序的同时主要使用HTML,CSS和JavaScript。(注意:我自己实际上并没有使用过。)


1
AIR中的集成浏览器很旧,并且永远不会更新,因此,我不建议使用(我在更多项目中使用了它)
simion314 2014年

@ simion314:我很好奇,因为AIR是一个正在进行的项目,为什么您说其中的浏览器将“从不”更新。
TJ Crowder 2014年

请参阅forums.adobe.com/message/6177332,Adobe 在AIR的移动部分上的工作更多,在移动设备上,他们使用StageWebView,并且不会在AIR中更新Webkit引擎,stagewebview仅限于显示内容,例如尝试加载像ckeditor 4这样的复杂javascript库或应用程序,由于与Webkit引擎不兼容(某些与沙箱有关,但并非全部与之不兼容),它会失败
simion314 2014年


2

嗯... HTML5 / CSS / JS的虚拟机...听起来像浏览器。:)

也许Adobe AIR可以解决问题,因为它基于将富Internet应用程序带到桌面的想法。但是,我从未使用过它。

您可以做的一件事是开发一个非常基本的桌面应用程序,该应用程序使用某种预包装的Web浏览器控件(例如,如果您是为Mac开发的,只需将WebView放在窗口中并添加一些基本代码即可将HTML加载到应用程序上启动)。





1

当前的答案是每个平台都有不同的解决方案。

  • 对于MAC OSX,您将使用UIWebView创建一个Cocoa桌面应用程序
  • 对于Windows,您将制作一个带有浏览器组件的.NET桌面应用程序。

我认为使用带有浏览器组件的Windows比有几个限制(可以访问文件系统或显示弹出窗口吗?),您知道使用该方法的项目吗?...
clagccs 2012年

最佳答案,没有人承认。在后面,几乎所有混合解决方案都使用行为类似于浏览器的Webview组件。这就是您所需要的,获取Webview,加载html / css / js,瞧!
丹·奥基亚娜

1

您可以使用嵌入式服务器,例如Tomcat或Apache。

我将tomcat用于完整的java Web应用程序。在浏览器中运行,但是需要安装该应用程序。启动应用程序,启动服务并打开浏览器的快捷方式。

或尝试使用webkit


1

有点晚了,但是您可以使用便携式版本的Google chrome,然后创建一个小型Windows应用程序来安装它,并为其.kiosk和应用程序模式创建.ink快捷方式。
Kinda喜欢chrome应用程序快捷方式,但是您可以在其中安装chrome。


1

如果仅Windows需要它,则应考虑HTML应用程序(HTA),自IE 5(已有10多年)以来,它已成为Internet Explorer的一部分。

无需服务器,完整的HTML格式,对本地资源的完全访问权限(甚至COM / USB端口),非常棒。另外,使用Visual Studio易于调试,只需绑定到MSHTA.exe

您可以使用以下meta标签在HTA中启用HTML 5:

<!-- enable html5 features --> 
<meta http-equiv="X-UA-Compatible" content="IE=edge"></meta>

+1也寻求Linux和Mac支持:)
Bhargav Nanekalva 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.