【问题标题】:Solutions for distributing HTML5 applications as desktop applications? [closed]将 HTML5 应用程序作为桌面应用程序分发的解决方案? [关闭]
【发布时间】:2011-06-19 16:03:54
【问题描述】:

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

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

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

【问题讨论】:

  • Chrome + 全屏效果很好
  • Windows 上的 Chrome 在扳手菜单中有一个“制作应用程序快捷方式”选项。它将在桌面上创建一个链接,打开没有地址栏的标准窗口。
  • 您是否还有其他要求,例如访问本地文件或其他在浏览器中通常无法完成的事情?
  • 谁能解释一下为什么这个问题被标记为不具建设性?他在问有没有平台,答案很客观:。并且可以通过一些可能性“实现”,所以为什么要以这种方式标记,真的。
  • 这个问题既相关又热门 - 如最近的这篇文章所示:clintberry.com/2013/html5-apps-desktop-2013

标签: javascript html desktop-application


【解决方案1】:

2014 年的 HTML5 应用

chrome/webkit 框架

  • Electron(前 Atom Shell)

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

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

  • Node-Webkit,最小的办法

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

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

  • Brackets Shell,Adobes 代码编辑器的沙箱(也是 Adob​​e Edge 的基础)

    注意:brackets-shell 仅维护用于 Brackets 项目。虽然有些人肯定已经成功地将它用作其他项目的应用程序外壳,但我们没有为此提供任何官方支持,我们还没有做大量工作来使应用程序外壳易于重用。许多人可能会发现使用像 node-webkit 这样的项目更容易,它在设计上更通用。

    自述文件中说,但还是有很多人这样做了。

框架+工具

  • Adobe AIR,正如另一个答案所建议的那样。

    Adobe® AIR® 运行时使开发人员能够将相同的代码打包到适用于 Windows 和 Mac OS 桌面以及 iPhone、iPad、Kindle Fire、Nook 平板电脑和其他 Android™ 设备的本机应用程序中,并进入移动应用程序商店超过 5 亿台设备。

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

不活跃的方法

【讨论】:

  • Mozilla Prism 现已停用
  • 请注意 Adob​​e Air。如果您计划使用任何类型的 javascript 模板解决方案(例如 Handlebars、Mustache),由于与 new function() javascript 调用相关的安全错误,它们中的大多数都无法工作。
  • 感谢您提供的非常有用的提示!不幸的是,我还没有机会测试上面列出的任何示例。我只是通过研究收集它们。
  • 您可以让您的应用程序在安全沙箱中运行。我在使用 KendoUI 模板系统时也遇到了这个问题,并且能够克服它。无论哪种方式,我都从 Air 切换到 Titanium Desktop,但目前正在寻找替代方案,因为 TD 的 Windows webkit 实现在表单元素(输入/下拉菜单)方面存在严重问题)。
  • 可以考虑Sentenza Desktop将HTML5/CSS3/JS web应用打包成Mac OS X应用(.app)。 API 库也可用。它不需要任何框架(如 Adob​​e Air 或 TideSDK)。支持 Mac App Store 部署。
【解决方案2】:

您可以使用使用 Nodejs 和 Chromium 的 AppJS 来构建用于桌面的 html5 应用程序。看看:http://appjs.com Github链接:https://github.com/appjs/appjs

【讨论】:

  • 类似的是node-webkit,它有一些不错的特性,比如使用v8快照编译你的javascript。 link
  • 弃用通知 AppJS 项目已经几年没有积极开发了。请改用 NW.js 或 Electron。
【解决方案3】:

如果您只是在 Windows 上需要它,您应该考虑 HTML 应用程序 (HTA),它自 IE 5(10 多年)以来一直是 Internet Explorer 的一部分。

不需要服务器,完整的 HTML 格式,完全访问本地资源(甚至是 COM / USB 端口),太棒了。此外,使用 Visual Studio 轻松调试,只需绑定到 MSHTA.exe

您可以使用以下元标记在 HTA 中启用 HTML 5:

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

【讨论】:

  • +1 也寻找 Linux 和 Mac 支持 :)
【解决方案4】:

[仅在 Windows 上] 尝试 HTML 应用程序 (HTA) 方法 - 只需使用 .hta 扩展名保存您的 .html 文件。它还提供了一些附加设置来摆脱浏览器窗口、设置应用程序的信任级别等。在此处阅读更多信息:http://en.wikipedia.org/wiki/HTML_Application 和此处http://technet.microsoft.com/en-ca/scriptcenter/dd742317.aspx

【讨论】:

    【解决方案5】:

    有点晚了,但你可以使用便携式版本的谷歌浏览器,然后创建一个小的 Windows 应用程序来安装它,并创建一个 .ink 快捷方式到它的 --kiosk 和应用程序模式。
    有点像 chrome 应用程序快捷方式,但您为它们安装 chrome。

    【讨论】:

      【解决方案6】:

      检查来自 Mozilla 的这个新项目。您也可以创建桌面应用程序:https://developer.mozilla.org/en/Apps

      详情在这里:http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/

      【讨论】:

      • 太糟糕了,他们并没有真正将其创建为无铬应用程序。
      【解决方案7】:

      你可以试试Phonegap,有一个Windows桌面端口:https://github.com/davejohnson/phonegap-windows

      我试过mac-port,效果很好。我还没试过windows版本。

      【讨论】:

      【解决方案8】:

      您可以使用像 Tomcat 或 Apache 这样的嵌入式服务器。

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

      或者尝试使用 webkit

      【讨论】:

        【解决方案9】:

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

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

        【讨论】:

        • 我认为比使用带有浏览器组件的窗口有几个限制(可以访问文件系统或显示弹出窗口?),你知道有什么项目比使用这种方法吗?...
        • 最佳答案,没有人承认。在后面,几乎所有混合解决方案都使用一个 webview 组件,其行为就像浏览器一样。这就是你所需要的,启动一个 webview,加载 html/css/js,瞧!
        【解决方案10】:

        【讨论】:

        • Sencha:“每个开发者席位 995 美元起” Pokki:仅限 Windows...
        【解决方案11】:

        chrome 可以做 prism 做的事 见 -- 工具-> 创建应用快捷方式

        【讨论】:

        • 不知道... +1
        • 很遗憾,应用程序快捷方式在 Mac 上不可用。
        【解决方案12】:

        对于手机,您可以使用 PhoneGap http://www.phonegap.com/ 。可能通过更多编码,您可以将其用于桌面。

        【讨论】:

          【解决方案13】:

          一定要查看Titanium。就在今天,我做了一个功能性 HTML5 应用程序,经过一些小的修改,就能够将其放入 Titanium 中,并将其打包用于 Mac、Windows 和 Linux。

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

          【讨论】:

          • 如果你想要一个预打包的解决方案,我想这就是答案。
          • 我在 Titanium 上的体验非常糟糕——它的外观看起来很棒,但里面充满了 bug,而且使用起来非常快。我不能推荐它。
          • 我也认为这是一个不错的选择,但是:1) 我无法让它在 Linux (Ubuntu 11.10) 中运行一个简单的“create-new-project/run” 2) Titanium Desktop转换为社区驱动的项目(这意味着,除非有人拿走他们的代码,否则它会死掉)
          • 我知道这很旧,但我刚刚阅读了这个答案,并花了一些时间才发现 Titanium Desktop 已经死了。所以,不再是一个选择。顺便说一句,我正在考虑创建一些嵌入 c# 和铬的东西,就像 github 在他的 windows 工具中所做的那样
          • Titanium Desktop 已成为 TideSDK tidesdk.org
          【解决方案14】:

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

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

          【讨论】:

          • 我强烈建议您查看 XULRunner。对于您所描述的,这是理想的,并且有据可查。我想 Chrome 也可以正常工作,但我还没有研究过。
          • XUL runner 是一个很棒的框架,非常灵活,但没有像你说的那样有很好的文档记录。新手将不得不忍受很多痛苦才能开始。
          【解决方案15】:

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

          也许 Adob​​e AIR 可以做到这一点,因为它基于将富 Internet 应用程序带到桌面的想法。不过我没用过。

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

          【讨论】:

            【解决方案16】:

            Adobe AIR 旨在让您主要使用 HTML、CSS 和 JavaScript 工作,同时提供桌面应用程序。 (警告:我自己并没有真正使用过。)

            【讨论】:

            • AIR中集成的浏览器老旧,永远不会更新,所以不推荐(我在更多项目中使用过)
            • @simion314:我很好奇,因为 AIR 是一个正在进行的项目,为什么你说其中的浏览器“永远”不会更新。
            • 参见forums.adobe.com/message/6177332 Adob​​e 更多地为 AIR 的移动部分工作,在移动设备上他们使用 StageWebView 并且他们不会更新 AIR 中的 webkit 引擎,stagewebview 仅限于显示内容,例如如果您尝试加载复杂的 javascript 库或应用程序,例如 ckeditor 4,它会因为与 webkit 引擎的一些不兼容而失败(有些与沙箱有关,但不是全部)
            猜你喜欢
            • 2010-09-18
            • 1970-01-01
            • 1970-01-01
            • 2011-09-07
            • 2015-08-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多