如何将Web应用程序转换为桌面可执行文件?

Mir*_*age 23 html desktop-application web-applications converter

我使用带有AJAX REST API的AngularJS/jQuery/Bootstrap构建HTML应用程序.
是否可以为Windows操作系统创建可执行文件/安装程序?

没有任何第三方软件,它应该看起来像本机应用程序,但HTML.
例如,Slack messenger有web/mac/windows版本,它们看起来相同.

有任何想法吗?

// UPD

我可能需要一个包装器(webview),但我需要EcmaScript5/CSS3的所有功能.

Ara*_*oca 18

电子是最简单的方法:

1.安装电子

2.创建和编辑main.js:

const electron = require('electron');
const { app, BrowserWindow } = electron;

let mainWindow;

app.on('ready', () => {
    mainWindow = new BrowserWindow({
        width: 1000,
        height: 700
    });

    mainWindow.setTitle('title of the desktop app');
    mainWindow.loadURL('http://www.yourwebpage.com');

    mainWindow.on('closed', () => {
        mainWindow = null;
    });
});
Run Code Online (Sandbox Code Playgroud)

3.执行桌面应用程序:

electron main.js
Run Code Online (Sandbox Code Playgroud)

要构建应用程序,请使用电子构建器等构建器.

希望对你有所帮助!

  • 它是真正的桌面应用程序还是仅仅是特定于站点的浏览器? (2认同)

Dav*_*veJ 8

(完全公开,我是ToDesktop的创始人,在这里我会尽量客观公正。)

和计算机科学一样,答案是“视情况而定”!

您应该问自己的第一个问题是:谁正在使用桌面应用程序?就你一个?或者,您是否将应用分发给客户?因为这两个细分市场有着非常不同的需求。

只有你

这里有很多选项(排名不分先后):

  1. Nativefier - 显而易见的选择。大量配置选项、大量贡献者、开源并定期更新。如果您想为自己创建一个应用程序,这可能应该是默认选项。
  2. WebDGap — 这是一个可爱的项目,但它有点老了,“截至 2018 年 4 月 13 日,WebDGap 不再是一个活跃的项目。”。还应该注意的是,这是建立在旧版本的 node-webkit 而不是 Electron 上的。
  3. Web2Desk — 如果您不想弄乱命令行,这是一个不错的选择。它在底层使用 Nativefier。带闪屏是免费的,移除闪屏后 19 美元。
  4. Electron自己动手-在这个早期的答案中已经很好地涵盖了基础知识。我喜欢这个选项,因为它让你可以完全灵活地将项目带到任何你喜欢的地方,你也会学到一些 Electron。
  5. Fluid App仅适用于 Mac,但除此之外,它是一个可爱的解决方案,而且超级简单。标准版是免费的,还有一个 5 美元的版本,其中包括全屏等功能。
  6. Flotato —又是Mac,但这是一个非常有趣的方法。只需克隆该应用程序并为其命名,例如 docs.google.com,它就会变成 Google Docs。在撰写本文时,它处于预发布阶段(尚未发布)但我会密切关注它,它非常酷。
  7. ToDesktop — ToDesktop 可以工作,但如果您正在创建个人应用程序,它可能有点矫枉过正。此外,对于这个用例来说,它可能有点太贵了。ToDesktop 旨在创建一个桌面应用程序以分发给客户(更多信息见下文)。

分发给客户

在创建分发给客户的桌面应用程序时,有一些额外的考虑因素变得更加重要:

  • 安装程序— Mac 用户期望“拖到应用程序”DMG 文件。Windows 用户期望安装程序,并且他们还期望能够从控制面板卸载它。
  • 代码签名——如果你的应用程序没有代码签名,那么默认情况下 Windows Authenticode 和 Apple Gatekeeper 将阻止你的桌面应用程序被打开。
  • 自动更新— 仍然有一个 Web 浏览器在您的桌面应用程序的“下方”运行,保持更新很重要,原因有两个。1.安全问题+漏洞应该随着时间的推移进行修补。2. 你不想因为你的桌面应用的浏览器没有更新而在 5 年内坚持支持旧的网络浏览器

上面提到的工具不提供这些功能,因此它们并不真正适合将您的应用程序分发给客户的用例。这些是我们在构建ToDesktop时想要添加的功能,所以我认为它非常适合这个用例。我们一直在添加功能,上周我们添加了对App Protocols 和 Deeplinks 的支持。

  • 另一项披露,这是一项付费服务​​,所以不要在知道这一点之前设置所有的东西,然后意识到你白白浪费了所有时间。 (2认同)

Mic*_*rtz 6

我本人一直在寻找一种全方位的解决方案。我尝试了从TideSDK,AppJS,Appcelerator Titanium,VB.NET中的本机代码,XCode,Python,C ++,Electron,node-webkit等中进行的所有操作:基本上,您命名了它,我已经尝试过了。

注意Electron很不错,但是它只能在64位处理器上运行。因此,如果要在32位处理器上运行应用程序,则node-webkit很好。

因此,我决定构建自己的名为WebDGap的开源解决方案。

目前,WebDGap可在Windows,Linux,Mac OS X,Google Chrome和Web应用程序上运行!

观看视频教程以学习,以及如何明显地使用该应用程序。

这是屏幕截图。 WebDGap应用程序

由于您已经是Mac用户,因此可以将导出的应用合并到1个.app mac文件中。这可以通过Automator(和一些shell脚本)完成。

我还有一个为移动用户设计的编码游乐场,它具有内置的此功能,称为kodeWeave

这是我要作为Mac App导出的井字游戏: kodeWeave应用程序

现在,该Web应用程序正在作为本机Mac应用程序运行! Tic-Tac-Toe现在作为Mac App运行