1 Star 1 Fork 0

宫城姬野/BeeMusic

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.js 3.94 KB
一键复制 编辑 原始数据 按行查看 历史
// main.js 主进程
const path = require('path')
const axios = require("axios").default;
const { app, BrowserWindow, Menu, Tray, dialog, ipcMain } = require('electron')
const remote = require("@electron/remote/main")// 1.引入remote模块,需要先安装
remote.initialize() // 2.初始化remote模块
// // 解决cookie跨域
// var myCookie;
// const axiosClient = axios.create({
// baseURL: 'http://guowei.fun/api',
// });
// axiosClient.interceptors.request.use(
// (config) => {
// if (myCookie !== undefined) {
// // 添加Cookie请求头
// config.headers["Cookie"] = myCookie;
// }
// return config;
// },
// (error) => Promise.reject(error.request.data.err)
// );
// //ipcMain.on 将接受 从渲染进程发过来的“btnclick”事件
// ipcMain.on("login", function (event, arg) {
// console.log("渲染进程", arg.phone, arg.password);
// axiosClient.post("/login/cellphone", { phone: arg.phone, password: arg.password }).then((res) => {
// myCookie = res.data.cookie;
// console.log(myCookie);
// // 拿到cookie将数据发送给渲染进程
// event.sender.send("cookie", myCookie);
// }).catch((err) => console.log(err));
// });
// 关闭警告
process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true'
// 禁用当前应用程序的硬件加速
app.disableHardwareAcceleration()
let win;// 窗口对象全局变量
// 创建窗口方法
function createWindow() {
win = new BrowserWindow({
width: 1001,// 窗体宽度
minWidth: 1001,// 窗体最小宽度
height: 600,// 窗体高度
minHeight: 600,// 窗体最小高度
frame: false,// 去掉标题栏
// resizable: false,// 禁止窗口大小调整
// transparent: true,// 透明窗体
// titleBarStyle: 'hidden',// 隐藏标题栏
webPreferences: {// 配置
nodeIntegration: true,//允许渲染进程使用nodejs
contextIsolation: false,//允许渲染进程使用nodejs
preload: path.join(__dirname, 'preload.js'),// 预加载脚本
webSecurity: false,// 允许跨域
}
})
// app.isPackaged 用于判断是否打包,如果是打包则加载打包后的页面,否则加载开发页面
if (app.isPackaged) {
win.loadFile(path.join(__dirname, "/dist/index.html"));// 加载打包后的页面
} else {
win.loadURL("http://127.0.0.1:5173");// 本地启动的vue项目路径
win.webContents.openDevTools();// 打开F12开发者调试工具
}
// 3.开启remote模块
remote.enable(win.webContents)
}
// dialog 退出确认
function exitConfirm() {
dialog.showMessageBox({
type: 'none',
buttons: ['确定', '取消'],
title: '提示',
message: '确定要退出吗?',
defaultId: 1,
cancelId: 1,
}).then(result => {
if (result.response === 0) {
app.quit()
}
})
}
// 创建系统托盘方法
function createTray() {
const tray = new Tray(path.join(__dirname, '/src/assets/img/logo2.png'))
const contextMenu = Menu.buildFromTemplate([
{ label: '显示', type: 'normal', click: () => { win.show() } },
{ label: '刷新', type: 'normal', click: () => { win.reload() } },
{ label: '开发者工具', type: 'normal', click: () => { win.webContents.openDevTools() } },
{ label: '最小化到托盘', type: 'normal', click: () => { win.minimize(); win.hide(); } },
{ label: '退出', type: 'normal', click: () => { exitConfirm() } },
])
tray.setToolTip('这是一个系统托盘图标')
tray.setContextMenu(contextMenu)
tray.on('click', () => {
win.isVisible() ? win.hide() : win.show() // 点击托盘图标显示窗口,再次点击隐藏窗口
})
}
// 监听窗口关闭事件
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
})
// 初始化完成后创建窗口
app.whenReady().then(() => {
createWindow()
createTray()
// 监听激活窗口(macOS),没有窗口时创建窗口
app.on('activate', function () {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/miyagi-jiye/BeeMusic.git
git@gitee.com:miyagi-jiye/BeeMusic.git
miyagi-jiye
BeeMusic
BeeMusic
master

搜索帮助