const { Menu, dialog, BrowserWindow, session } = require('electron'); //const updateManager = require('./updateManager'); const constants = require('./constants'); const utils = require('./utils'); const path = require('path'); const fs = require('fs'); // 创建菜单 const createMenu = (checkForUpdatesCallback) => { const localVersion = utils.formatVersion(getLocalVersion()); console.log('Local version:', localVersion); const electronVersion = process.versions.electron; const nodeVersion = process.versions.node; const chromeVersion = process.versions.chrome; const appVersion = require('electron').app.getVersion(); const template = [ { label: '主页', click: () => { const win = BrowserWindow.getFocusedWindow(); // 获取当前获得焦点的窗口 console.log('win', win); if (win) { win.loadURL(`${constants.baseUrl}/login/admin`, { agent: constants.agent }); } else { console.warn('没有获得焦点的窗口'); } } }, { label: '设置', submenu: [ { label: '清理缓存', click: () => { clearCache(); } }, { label: '调试模式', click: () => { openDevTools(); } }, { label: '退出程序', click: () => { require('electron').app.quit(); } } ] } //, //{ label: '帮助' }, //{ // label: '版本', // submenu: [ // { // label: '检查更新服务端', // click: () => { // if (typeof checkForUpdatesCallback === 'function') { // checkForUpdatesCallback(); // } else { // console.error('checkForUpdatesCallback is not a function'); // } // } // }, // { // label: `服务端版本: ${localVersion}` // }, // { // label: `应用程序版本: ${appVersion}` // }, // { // label: `浏览器内核版本: ${chromeVersion}` // } // ] //} ]; const menu = Menu.buildFromTemplate(template); Menu.setApplicationMenu(menu); }; // 开启调试模式 const openDevTools = () => { const win = BrowserWindow.getFocusedWindow(); // 获取当前获得焦点的窗口 if (win) { win.webContents.openDevTools(); // 打开开发者工具 } else { console.warn('没有获得焦点的窗口'); } }; // 清理缓存 const clearCache = () => { const win = BrowserWindow.getFocusedWindow(); // 获取当前获得焦点的窗口 // console.log('win', win); if (win) { session.defaultSession.clearStorageData({ storages: ['cookies', 'localstorage', 'shadercache', 'serviceworkers', 'cachestorage'], quotas: ['temporary', 'persistent', 'syncable'], }, () => { console.log('缓存和其他存储数据已清理'); console.log('缓存已清理'); dialog.showMessageBox(win, { type: 'info', title: '清理缓存', message: '缓存已清理', buttons: ['确定'] }); }); // 清理缓存 //win.webContents.on('did-finish-load', () => { // win.webContents.clearCache(); // console.log('缓存已清理'); //}); // 清理默认会话的缓存 session.defaultSession.clearCache(() => { console.log('缓存已清理'); }); win.loadURL(`${constants.baseUrl}/login/admin`, { agent: constants.agent }); } else { console.warn('没有获得焦点的窗口'); } }; // 获取本地版本号 const getLocalVersion = () => { const appSettingsPath = path.join(constants.serverPath, 'server', 'appsettings.json'); try { if (fs.existsSync(appSettingsPath)) { const appSettings = JSON.parse(fs.readFileSync(appSettingsPath, 'utf-8')); return appSettings.Version || '1.250101.01'; // 默认版本号 } } catch (error) { console.error('Error reading appsettings.json:', error); return '1.250101.01'; } }; module.exports = { createMenu };