| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- const { app, BrowserWindow, ipcMain } = require('electron');
- const path = require('path');
- const url = require('url');
- const isLocal = process.argv[process.argv.length - 1] === 'local';
- const extDir = isLocal ? '../build/production/saas' : 'dist';
- let loginWindow;
- let mainWindow;
- // 监听session变化
- ipcMain.on('session.change', (event, arg) => {
- if (arg) {
- loginWindow && loginWindow.close();
- createMainWindow(arg);
- } else {
- mainWindow && mainWindow.close();
- createLoginWindow();
- }
- });
- function createLoginWindow() {
- loginWindow = new BrowserWindow({ width: 453, height: 513, fullscreenable: false, maximizable: false, resizable: false });
- loginWindow.loadURL(url.format({
- pathname: path.join(__dirname, 'login.html'),
- protocol: 'file:',
- slashes: true
- }));
- if (isLocal) {
- loginWindow.webContents.openDevTools();
- }
- loginWindow.on('closed', function () {
- loginWindow = null;
- });
- }
- function createMainWindow (session) {
- mainWindow = new BrowserWindow({ width: 1280, height: 720, show: false });
- mainWindow.once('ready-to-show', function(){
- mainWindow.maximize();
- mainWindow.show();
- });
- mainWindow.loadURL(url.format({
- pathname: path.join(__dirname, extDir + '/index.html'),
- protocol: 'file:',
- slashes: true
- }));
- if (isLocal) {
- mainWindow.webContents.openDevTools();
- }
- mainWindow.webContents.on("did-finish-load", function() {
- mainWindow.webContents.executeJavaScript('\
- localStorage.setItem("app-state-session", decodeURIComponent("' + encodeURIComponent(session) + '"))');
- });
- mainWindow.on('closed', function () {
- mainWindow = null;
- });
- }
- app.on('ready', createLoginWindow);
- // Quit when all windows are closed, except for Mac users
- app.on('window-all-closed', function () {
- if (process.platform !== 'darwin') {
- app.quit()
- }
- });
- app.on('activate', function () {
- if (mainWindow === null) {
- createMainWindow();
- }
- });
|