【发布时间】:2017-09-22 04:27:17
【问题描述】:
Angular 网站 (www.angular.io) 声称 Angular 可用于 “适用于网页、移动网页、原生移动和原生桌面。”我想了解更多有关本机桌面功能的信息,但在 angular.io 网站上找不到任何内容。有人可以指点我一些文档或示例吗?
【问题讨论】:
标签: angular desktop-application
Angular 网站 (www.angular.io) 声称 Angular 可用于 “适用于网页、移动网页、原生移动和原生桌面。”我想了解更多有关本机桌面功能的信息,但在 angular.io 网站上找不到任何内容。有人可以指点我一些文档或示例吗?
【问题讨论】:
标签: angular desktop-application
这很令人困惑,但无法仅使用 Angular2 创建本机桌面应用程序。也许这是对未来的计划,但目前还不可能。但是 Angular2 与 Electron 配合得很好!我写了一篇关于它的博客,不幸的是它只有德语 :( 但也许你可以用谷歌翻译器简单地翻译它:https://medium.com/@baerree/ich-packe-meine-koffer-angular-cli-electron-ii-28644342b956
基本上,您需要运行此处描述的步骤: http://www.blog.bdauria.com/?p=806
在您的应用周围构建电子骨架并完成链接中描述的 Angular2 配置步骤后,有一件事情要做:
您的 Angular2 范围内缺少电子范围。这意味着,如果你想访问它,你需要在 Angular2 中传输电子。这是通过将以下内容添加到您的 index.html 来完成的(请注意,这不是一个干净的解决方案):
<script>
var electron = require('electron');
</script>
完成此操作后,您需要通过将其添加到 typescript.d.ts 来告诉 typescript,现在有一个电子变量:
declare var electron: any;
您现在可以通过以下方式访问 Angular2 中的电子:
var app = electron.remote.app;
使用 app 变量,您可以完全访问 electron 和您的 electron.js 文件。例如。你可以这样做:
this.title = app.getAppPath();
我希望这至少有一点帮助:)
干杯
【讨论】:
嗯,你必须有某种包装。 Angular 2 本身无法创建桌面应用程序。 Angular 是纯粹的 Web 技术,因此适用于浏览器。像电子这样的框架创建了一个浏览器包装器来欺骗用户认为应用程序不是像 chrome 这样的浏览器。
话虽如此,要完全回答您的问题,您可以使用 asp 核心和 Universal Windows Platform 创建一个没有电子的 angular 2 应用程序,它允许您使用 javascript、html 和 css 进行开发,这正是 angular 的含义。但是,您随后会被锁定在 .net 和 Windows 桌面应用程序中。其中,如果您只是为 Windows 开发,那么这是一个比电子恕我直言更好的解决方案。
另请注意,您可能会编写一些 C# 配置。
也有几乎可以做同样事情的电子替代品(浏览器包装器)
【讨论】: