@icenet/electron-window
Version:
主要针对使用 electron-vite 初始化的项目做的插件,点击[这里](https://cn-evite.netlify.app/),必在 electron-vite 的基础上使用,针对 electron-vite 中打开新的无边框窗口缓慢、传参困难等问题做的优化,安装方式简单、使用简单
63 lines (58 loc) • 1.96 kB
JavaScript
;
const { app } = require("electron");
const { dirname, join } = require("path");
const https = require("https");
const fs = require("fs");
/**
* 获取文件路径
* @param {*} dirname 文件绝对路径
* @param folder 文件目录
* @param name 文件名字
* @returns
*/
const getFile = (dirname, folder, name) => {
return join(dirname, folder, name);
};
/**
* 获取本地或者远程图标,下载保存在本地
* @param iconPath 图标路径
* @param folder 文件路径
* @param name 图标名字
* @param isLocal 是否是本地图标
* @returns
*/
const getIcon = (iconPath, folder, name, isLocal = false) => {
return new Promise((resolve, reject) => {
try {
let localIconPath = join(app.getAppPath(), folder, name);
// 判断是否是正式环境
if (app.isPackaged) {
// 正式环境
localIconPath = join(dirname(app.getPath("exe")), folder, name);
}
// 下载图标
const file = fs.createWriteStream(localIconPath);
if (isLocal) {
const readStream = fs.createReadStream(iconPath);
readStream.pipe(file);
file.on("finish", function () {
file.close();
// 设置本地图片作为图标
resolve(localIconPath);
});
} else {
https.get(iconPath, function (response) {
response.pipe(file);
file.on("finish", function () {
file.close();
// 存到本地图片作为图标
resolve(localIconPath);
});
});
}
} catch (error) {
reject();
}
});
};
module.exports = { getFile, getIcon };