123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- 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
- };
|