【问题标题】:What is the best way to communicate from Angular2 to Electron and back?从 Angular2 到 Electron 并返回的最佳方式是什么?
【发布时间】:2016-07-01 06:17:57
【问题描述】:

我有这个简单的应用程序(Node.js、Electron、Angular2、TypeScript),你可以在任何教程中找到。

从 Angular2 到 Electron 并返回的最佳方式是什么?

假设您想拨打system dialog。你会怎么做?

这些是我的主要源文件:

【问题讨论】:

  • 说真的,是否有人只是通过所有新问题并投票结束它们作为离题?这怎么跑题了?把它关掉。
  • 我不确定我是否理解您的评论。
  • 哦,当您的问题显然不是题外话时,我只是在抱怨投票结束您的问题为“题外话”的人。这也发生了其他几个问题。你的问题是我在十分钟内看到的第三个问题,所以很明显有人只是通过投票结束新问题,甚至没有认真看它们。

标签: node.js typescript angular electron


【解决方案1】:

您可以将主 Electron 文件视为在节点中运行的服务器。这意味着您可以选择任何方式与它交流。

  • 您可以启动一个快速 http 服务器并创建一些 API 端点,以便从客户端的 Angular 代码中访问。

  • 您可以启动 socket.io 服务器并使用 websocket 进行通信。

  • 如果您不关心将系统代码与客户端代码混合,您也可以直接在 Angular 代码中直接使用这些 API。仅当您的应用程序始终是 Electron 应用程序并且从未移植到 Web 应用程序时才这样做。如果它要成为一个网络应用程序,那么你的客户端 Angular 应用程序应该坚持只使用字体端 javascript 代码,并让主 Electron 文件充当服务器。

【讨论】:

  • socket.io 的 +1。正是以这种方式将它用于我目前正在开发的 Electron 应用程序。对于任何服务器,尤其是 websocket,请记住,除非实施某种身份验证,否则任何东西(例如在浏览器中打开的网页)都可以连接。
  • 感谢您的反馈。真的很感激。
【解决方案2】:

另一种方法是使用 ipc 事件进行通信。在浏览器端使用 ipcRenderer,在 Electron 端使用 ipcMain。这几乎就是我在我的应用程序中所做的(正在进行中)https://github.com/sumitkm/electricedit/

但是我使用的是 KO 而不是 Angular。

【讨论】:

  • 是的,我也偶然发现了这一点。 That's what you mean,对吧?
  • 是的...您可以设置一种自定义队列类型的模式,其中 UI 引发事件,电子一旦完成就会响应事件...可能有点笨拙,但我仍在尝试:- )...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
  • 2017-04-12
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多