You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

64 lines
2.0 KiB

// 引入Electron的核心模块
const { app, BrowserWindow, Menu } = require("electron");
const path = require("path");
// 创建窗口的函数
function createWindow() {
// 定义图标路径
const iconPath = path.join(__dirname, "./public/app.png");
// 新建一个窗口(就像打开一个浏览器窗口)
const mainWindow = new BrowserWindow({
width: 800, // 窗口宽度
height: 600, // 窗口高度
icon: iconPath,
...(process.platform === "linux" ? { icon } : {}),
webPreferences: {
// 允许在Vue页面中使用Node.js的功能(可选,按需开启)
nodeIntegration: true,
contextIsolation: false,
},
});
// 告诉窗口要显示的内容:
// 开发阶段,显示Vue3的本地服务地址(就是刚才npm run dev的地址)
mainWindow.loadURL("http://localhost:5173");
// 创建一个简单的菜单(包含前进/后退按钮)
// const menu = Menu.buildFromTemplate([
// {
// label: "", // 菜单名称
// icon: path.join(__dirname, './public/left.png'), // 16x16
// submenu: [
// {
// label: "后退", // 后退按钮
// click: () => mainWindow.webContents.goBack(), // 调用后退API
// },
// {
// label: "前进", // 前进按钮
// click: () => mainWindow.webContents.goForward(), // 调用前进API
// },
// ],
// },
// ]);
const menu = null;
Menu.setApplicationMenu(menu); // 把菜单应用到窗口
// 打开开发者工具(类似浏览器的F12,方便调试,可选)
// mainWindow.webContents.openDevTools()
}
// 当Electron准备好后,创建窗口
app.whenReady().then(() => {
createWindow();
// 对于Mac系统的兼容(不用深究,照抄即可)
app.on("activate", () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow();
});
});
// 关闭所有窗口时退出应用(Windows和Linux的习惯)
app.on("window-all-closed", () => {
if (process.platform !== "darwin") app.quit();
});