main.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. const { app, BrowserWindow, ipcMain } = require('electron');
  2. const path = require('path');
  3. const url = require('url');
  4. const isLocal = process.argv[process.argv.length - 1] === 'local';
  5. const extDir = isLocal ? '../build/production/saas' : 'dist';
  6. let loginWindow;
  7. let mainWindow;
  8. // 监听session变化
  9. ipcMain.on('session.change', (event, arg) => {
  10. if (arg) {
  11. loginWindow && loginWindow.close();
  12. createMainWindow();
  13. } else {
  14. mainWindow && mainWindow.close();
  15. createLoginWindow();
  16. }
  17. });
  18. function createLoginWindow() {
  19. loginWindow = new BrowserWindow({ width: 453, height: 513, fullscreenable: false, maximizable: false, resizable: false });
  20. loginWindow.loadURL(url.format({
  21. pathname: path.join(__dirname, 'login.html'),
  22. protocol: 'file:',
  23. slashes: true
  24. }));
  25. if (isLocal) {
  26. loginWindow.webContents.openDevTools();
  27. }
  28. loginWindow.on('closed', function () {
  29. loginWindow = null;
  30. });
  31. }
  32. function createMainWindow () {
  33. mainWindow = new BrowserWindow({ width: 1280, height: 720, show: false });
  34. mainWindow.once('ready-to-show', function(){
  35. mainWindow.maximize();
  36. mainWindow.show();
  37. });
  38. mainWindow.loadURL(url.format({
  39. pathname: path.join(__dirname, extDir + '/index.html'),
  40. protocol: 'file:',
  41. slashes: true
  42. }));
  43. if (isLocal) {
  44. mainWindow.webContents.openDevTools();
  45. }
  46. mainWindow.on('closed', function () {
  47. mainWindow = null;
  48. });
  49. }
  50. app.on('ready', createLoginWindow);
  51. // Quit when all windows are closed, except for Mac users
  52. app.on('window-all-closed', function () {
  53. if (process.platform !== 'darwin') {
  54. app.quit()
  55. }
  56. });
  57. app.on('activate', function () {
  58. if (mainWindow === null) {
  59. createMainWindow();
  60. }
  61. });