初始化

This commit is contained in:
2025-10-16 09:59:34 +08:00
commit dd3936944b
32 changed files with 20220 additions and 0 deletions

86
background.js Normal file
View File

@@ -0,0 +1,86 @@
const { app, BrowserWindow, Menu } = require('electron')
const path = require('path')
function createWindow () {
// 创建浏览器窗口
const mainWindow = new BrowserWindow({
width: 1200,
height: 800,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
enableRemoteModule: true
},
icon: path.join(__dirname, 'assets/icon.png'),
show: false,
titleBarStyle: 'hiddenInset'
})
// 加载应用的 index.html
mainWindow.loadFile('dist/index.html')
// 窗口准备好后显示
mainWindow.once('ready-to-show', () => {
mainWindow.show()
})
// 打开开发者工具
// mainWindow.webContents.openDevTools()
// 创建菜单
const template = [
{
label: 'ChronoMail',
submenu: [
{
label: '关于 ChronoMail',
role: 'about'
},
{ type: 'separator' },
{
label: '退出',
accelerator: process.platform === 'darwin' ? 'Cmd+Q' : 'Ctrl+Q',
click: () => {
app.quit()
}
}
]
},
{
label: '编辑',
submenu: [
{ label: '撤销', accelerator: 'CmdOrCtrl+Z', role: 'undo' },
{ label: '重做', accelerator: 'Shift+CmdOrCtrl+Z', role: 'redo' },
{ type: 'separator' },
{ label: '剪切', accelerator: 'CmdOrCtrl+X', role: 'cut' },
{ label: '复制', accelerator: 'CmdOrCtrl+C', role: 'copy' },
{ label: '粘贴', accelerator: 'CmdOrCtrl+V', role: 'paste' }
]
}
]
const menu = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(menu)
}
// 这段程序将会在 Electron 结束初始化和创建浏览器窗口的时候调用
// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(() => {
createWindow()
app.on('activate', function () {
// 在 macOS 上,当单击 dock 图标并且没有其他窗口打开时,
// 通常在应用程序中重新创建一个窗口。
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
// 当全部窗口关闭时退出程序
app.on('window-all-closed', function () {
// 在 macOS 上,除非用户用 Cmd + Q 确定地退出,
// 否则绝大部分应用及其菜单栏会保持激活。
if (process.platform !== 'darwin') app.quit()
})
// 在这个文件中,你可以续写应用剩下主进程代码。
// 也可以拆分成几个文件,然后用 require 导入。