2016-03-15 61 views
3

我有這個簡單的應用程序(Node.js,Electron,Angular2,TypeScript),你可以在任何教程中找到。從Angular2到Electron並返回的最佳方式是什麼?

從Angular2與Electron進行通信並返回的最佳方式是什麼?

假設您想致電system dialog。你會怎麼做?

這是我的主要源文件:

+0

說真的,是否有人剛剛通過所有新問題並投票結束他們作爲題外話?這個題目是怎麼回事?把它關掉。 – Chev

+0

我不確定我是否理解你想要評論的內容。 – Sommereder

+0

哦,我只是在抱怨那些投票決定把你的問題作爲「脫離主題」關閉的人,當你的問題顯然不是主題時。還有其他幾個問題也發生了。你是我在十分鐘內看到的第三個,很明顯有人剛剛經歷過,並且投票結束了新的問題,甚至沒有認真看待它們。 – Chev

回答

3

你可以把主要的電子文件,就像在節點上運行的服務器。意思是你可以用任何你選擇的方式與它溝通。

  • 可以旋轉起來明示http服務器並創建一些API端點從客戶端的角度你的代碼打。

  • 你可以啓動一個socket.io服務器並使用websocket進行通信。

  • 如果您不關心將系統代碼與客戶端代碼混合,您還可以直接在角碼內直接使用這些API。只有在您的應用程序永遠是Electron應用程序並且永遠不會移植到Web應用程序時才能執行此操作。如果它將成爲一個Web應用程序,那麼您的客戶端Angular應用程序應該堅持只使用字體結束的JavaScript代碼,並讓主Electron文件充當服務器。

+2

對於socket.io爲+1。對於我目前正在使用的Electron應用程序,正是以這種方式使用它。對於任何服務器,尤其是websocket,請記住,除非實施某種身份驗證,否則任何內容(如瀏覽器中打開的網頁)都可以連接。 – Teak

+1

感謝您的反饋。真的很感激它。 – Sommereder

1

另一種方法是使用ipc事件進行通信。在瀏覽器端使用ipcRenderer,在Electron端使用ipcMain。這幾乎是我在我的應用程序中完成的工作(正在進行中)https://github.com/sumitkm/electricedit/

但是我使用了KO而非Angular。

+0

是的,我也偶然發現了。 [這就是你的意思](https://github.com/atom/electron/blob/master/docs/api/ipc-main.md),對吧? – Sommereder

+0

是的......你可以設置自定義隊列類型的模式,其中用戶界面引發事件和電子響應事件一旦完成...可以有點笨重,但我仍然在嘗試的事情: - )... – sumitkm