2016-10-11 99 views
0

我認爲我缺少一些電子應用程序構建的方式,但我在我的main.js中使用無框架選項來隱藏我的應用程序的退出按鈕,並且我想在代碼中實現自己的代碼但我無法弄清楚如何觸發應用程序的實際終止。我正在使用與Electron結合的angular2 CLI生成器項目。通過網站關閉應用程序

基於我的谷歌搜索,我發現我需要使用const remote = require('electron').remote;,但這給我一個index.js:4Uncaught TypeError: fs.readFileSync is not a function錯誤,這對我來說沒有意義。我相信它是因爲我試圖在Angular App上執行一個僅節點模塊。 我想我錯過了一些東西。

有人知道發生了什麼嗎?

+0

如果您包含您正在使用的代碼,特別是'index.js'和您用來嘗試關閉該應用程序的文件,將會很有幫助。 – Aurora0001

回答

0

問題被角CLI使用CommonJS的我正在嘗試使用不太好的要求。爲了解決這個問題,我添加以下到我的index.html

<script> 
    const electron = require('electron'); 
    </script> 

,然後在我的typings.d.ts我添加declare var electron: any;這樣,當我試圖在我的應用程序訪問電子不會引發錯誤。

0

主要過程中,您可以通過調用app.quit()其中apprequire('electron')關閉應用程序。

如果你想關閉從應用呈現過程中,你可以退出按鈕通過執行類似

const {ipcRenderer} = require('electron'); 
ipcRenderer.send('exit-message', 'close'); 

這將廣播發送IPC消息回過程主要在那裏你可以適當地處理它,像這樣

ipcMain.on('exit-message', (event, arg) => { 
    app.quit(); 
    // or handle the actual message if you need other functionality 
}) 
+0

當我嘗試在渲染過程(角2應用)上使用'const {ipcRenderer} = require('electron');'它仍然給我那個'index.js:4Uncaught TypeError:fs.​​readFileSync不是一個函數'錯誤。 – Luca