我用NodeJS和Socket io开始了一个聊天应用项目,一切都很好。
后来我决定将我的应用程序添加到Electron框架,在一个窗口中开始聊天,但我无法关闭此窗口,退出按钮什么都不做。
在对我的代码进行一些研究以了解问题的来源之后,我删除了main.html中的socket.io.js行,然后我可以关闭我的应用程序,但是我的客户端Websocket肯定会停止工作。 / p>
<script src="/socket.io/socket.io.js"></script>
这是我的main.js中的createWindow函数。
function createWindow () {
// Instantiate Express App
app.server = require(__dirname + '/app/app')();
// Create the browser window.
win = new BrowserWindow();
// win.maximize();
// and load the index.html of the app.
win.loadURL('http://localhost:'+config.server.port);
// Open the DevTools.
// win.webContents.openDevTools();
win.focus();
// Emitted when the window is closed.
win.on('closed', () => {
console.log("close");
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
win = null
});
}
我的项目文件树看起来像这样
main.js // Electron, create the window load the app.js
/app/app.js // Express, all my socket function
/views/main.html // Html
请帮帮我!
答案 0 :(得分:2)
erff在我的main.html中解决了我有这个功能,删除了一切OK!
/**
* Alert when user leave the page
*
*/
window.onbeforeunload = function (event) {
var message = 'Sure you want to leave?';
if (typeof event == 'undefined') {
event = window.event;
}
if (event) {
event.returnValue = message;
}
return message;
}