Skip to content

Commit

Permalink
3.11.0
Browse files Browse the repository at this point in the history
  • Loading branch information
gaoshuaixing committed Mar 7, 2024
1 parent 832b2b0 commit cacab21
Show file tree
Hide file tree
Showing 7 changed files with 60 additions and 155 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[![star](https://gitee.com/dromara/electron-egg/badge/star.svg?theme=gvp)](https://gitee.com/dromara/electron-egg/stargazers)

<div align=center>
<h3>🎉🎉🎉 ElectronEgg V3.10.0已发布! 🎉🎉🎉</h3>
<h3>🎉🎉🎉 ElectronEgg V3.11.0已发布! 🎉🎉🎉</h3>
</div>
<br>

Expand All @@ -22,7 +22,7 @@
- 🍩 **为什么使用?** 桌面软件(办公方向、 个人工具),仍然是未来十几年PC端需求之一,提高工作效率
- 🍉 **简单:** 只需懂 JavaScript
- 🍑 **愿景:** 所有开发者都能学会桌面软件研发
- 🍰 **gitee:** https://gitee.com/dromara/electron-egg **4300+**
- 🍰 **gitee:** https://gitee.com/dromara/electron-egg **4400+**
- 🍨 **github:** https://github.com/dromara/electron-egg **1400+**
- 🏆 码云最有价值开源项目
![](https://wallace5303.gitee.io/ee/images/electron-egg/ee-zs.png)
Expand Down
4 changes: 2 additions & 2 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[![star](https://gitee.com/dromara/electron-egg/badge/star.svg?theme=gvp)](https://gitee.com/dromara/electron-egg/stargazers)

<div align=center>
<h3>🎉🎉🎉 ElectronEgg V3.10.0已发布! 🎉🎉🎉</h3>
<h3>🎉🎉🎉 ElectronEgg V3.11.0已发布! 🎉🎉🎉</h3>
</div>
<br>

Expand All @@ -22,7 +22,7 @@
- 🍩 **为什么使用?** 桌面软件(办公方向、 个人工具),仍然是未来十几年PC端需求之一,提高工作效率
- 🍉 **简单:** 只需懂 JavaScript
- 🍑 **愿景:** 所有开发者都能学会桌面软件研发
- 🍰 **gitee:** https://gitee.com/dromara/electron-egg **4300+**
- 🍰 **gitee:** https://gitee.com/dromara/electron-egg **4400+**
- 🍨 **github:** https://github.com/dromara/electron-egg **1400+**
- 🏆 码云最有价值开源项目
![](https://wallace5303.gitee.io/ee/images/electron-egg/ee-zs.png)
Expand Down
194 changes: 51 additions & 143 deletions electron/addon/autoUpdater/index.js
Original file line number Diff line number Diff line change
@@ -1,165 +1,73 @@
const { app: electronApp } = require('electron');
const { autoUpdater } = require("electron-updater");
const is = require('ee-core/utils/is');
const { Tray, Menu } = require('electron');
const path = require('path');
const Ps = require('ee-core/ps');
const Log = require('ee-core/log');
const Conf = require('ee-core/config');
const Electron = require('ee-core/electron');
const CoreWindow = require('ee-core/electron/window');
const Conf = require('ee-core/config');
const EE = require('ee-core/ee');

/**
* 自动升级插件
* 托盘插件
* @class
*/
class AutoUpdaterAddon {
class TrayAddon {

constructor() {
this.tray = null;
}

/**
* 创建
* 创建托盘
*/
create () {
Log.info('[addon:autoUpdater] load');
const cfg = Conf.getValue('addons.autoUpdater');
if ((is.windows() && cfg.windows)
|| (is.macOS() && cfg.macOS)
|| (is.linux() && cfg.linux))
{
// continue
} else {
return
}

// 是否检查更新
if (cfg.force) {
this.checkUpdate();
}

const status = {
error: -1,
available: 1,
noAvailable: 2,
downloading: 3,
downloaded: 4,
}
// 开发环境,代码热更新开启时,会导致托盘中有残影
if (Ps.isDev() && Ps.isHotReload()) return;

Log.info('[addon:tray] load');
const { CoreApp } = EE;
const cfg = Conf.getValue('addons.tray');
const mainWindow = CoreWindow.getMainWindow();

const version = electronApp.getVersion();
Log.info('[addon:autoUpdater] current version: ', version);
// 托盘图标
let iconPath = path.join(Ps.getHomeDir(), cfg.icon);

// 设置下载服务器地址
let server = cfg.options.url;
let lastChar = server.substring(server.length - 1);
server = lastChar === '/' ? server : server + "/";
//Log.info('[addon:autoUpdater] server: ', server);
cfg.options.url = server;

// 是否后台自动下载
autoUpdater.autoDownload = cfg.force ? true : false;

try {
autoUpdater.setFeedURL(cfg.options);
} catch (error) {
Log.error('[addon:autoUpdater] setFeedURL error : ', error);
}

autoUpdater.on('checking-for-update', () => {
//sendStatusToWindow('正在检查更新...');
})
autoUpdater.on('update-available', (info) => {
info.status = status.available;
info.desc = '有可用更新';
this.sendStatusToWindow(info);
})
autoUpdater.on('update-not-available', (info) => {
info.status = status.noAvailable;
info.desc = '没有可用更新';
this.sendStatusToWindow(info);
})
autoUpdater.on('error', (err) => {
let info = {
status: status.error,
desc: err
// 托盘菜单功能列表
let trayMenuTemplate = [
{
label: '显示',
click: function () {
mainWindow.show();
}
},
{
label: '退出',
click: function () {
CoreApp.appQuit();
}
}
this.sendStatusToWindow(info);
})
autoUpdater.on('download-progress', (progressObj) => {
let percentNumber = parseInt(progressObj.percent);
let totalSize = this.bytesChange(progressObj.total);
let transferredSize = this.bytesChange(progressObj.transferred);
let text = '已下载 ' + percentNumber + '%';
text = text + ' (' + transferredSize + "/" + totalSize + ')';
]

let info = {
status: status.downloading,
desc: text,
percentNumber: percentNumber,
totalSize: totalSize,
transferredSize: transferredSize
// 点击关闭,最小化到托盘
mainWindow.on('close', (event) => {
if (Electron.extra.closeWindow == true) {
return;
}
Log.info('[addon:autoUpdater] progress: ', text);
this.sendStatusToWindow(info);
})
autoUpdater.on('update-downloaded', (info) => {
info.status = status.downloaded;
info.desc = '下载完成';
this.sendStatusToWindow(info);
autoUpdater.quitAndInstall();
// const mainWindow = CoreWindow.getMainWindow();
// if (mainWindow) {
// mainWindow.destroy()
// }
// electronApp.appQuit()
mainWindow.hide();
event.preventDefault();
});

// 实例化托盘
this.tray = new Tray(iconPath);
this.tray.setToolTip(cfg.title);
const contextMenu = Menu.buildFromTemplate(trayMenuTemplate);
this.tray.setContextMenu(contextMenu);
// 左键单击的时候能够显示主窗口
this.tray.on('click', () => {
mainWindow.show()
})
}

/**
* 检查更新
*/
checkUpdate () {
autoUpdater.checkForUpdates();
}

/**
* 下载更新
*/
download () {
autoUpdater.downloadUpdate();
}

/**
* 向前端发消息
*/
sendStatusToWindow(content = {}) {
const textJson = JSON.stringify(content);
const channel = 'app.updater';
const win = CoreWindow.getMainWindow();
win.webContents.send(channel, textJson);
}

/**
* 单位转换
*/
bytesChange (limit) {
let size = "";
if(limit < 0.1 * 1024){
size = limit.toFixed(2) + "B";
}else if(limit < 0.1 * 1024 * 1024){
size = (limit/1024).toFixed(2) + "KB";
}else if(limit < 0.1 * 1024 * 1024 * 1024){
size = (limit/(1024 * 1024)).toFixed(2) + "MB";
}else{
size = (limit/(1024 * 1024 * 1024)).toFixed(2) + "GB";
}

let sizeStr = size + "";
let index = sizeStr.indexOf(".");
let dou = sizeStr.substring(index + 1 , index + 3);
if(dou == "00"){
return sizeStr.substring(0, index) + sizeStr.substring(index + 3, index + 5);
}

return size;
}
}

AutoUpdaterAddon.toString = () => '[class AutoUpdaterAddon]';
module.exports = AutoUpdaterAddon;
TrayAddon.toString = () => '[class TrayAddon]';
module.exports = TrayAddon;
1 change: 1 addition & 0 deletions electron/config/bin.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ module.exports = {
directory: './',
cmd: 'electron',
args: ['.', '--env=local'],
loadingPage: '/public/html/loading.html',
}
},

Expand Down
4 changes: 1 addition & 3 deletions electron/config/config.default.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,15 +114,13 @@ module.exports = (appInfo) => {
config.mainServer = {
protocol: 'file://',
indexPath: '/public/dist/index.html',
host: '127.0.0.1',
port: 7072,
};

/**
* 硬件加速
*/
config.hardGpu = {
enable: false
enable: true
};

/**
Expand Down
2 changes: 0 additions & 2 deletions electron/preload/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,4 @@ module.exports = async () => {
// 示例功能模块,可选择性使用和修改
Addon.get('tray').create();
Addon.get('security').create();
Addon.get('awaken').create();
Addon.get('autoUpdater').create();
}
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ee",
"version": "3.10.0",
"version": "3.11.0",
"description": "A fast, desktop software development framework",
"main": "main.js",
"scripts": {
Expand Down Expand Up @@ -46,7 +46,7 @@
"devDependencies": {
"@electron/rebuild": "^3.2.13",
"debug": "^4.3.3",
"ee-bin": "^1.4.0",
"ee-bin": "^1.5.0",
"electron": "^21.4.4",
"electron-builder": "^23.6.0",
"eslint": "^5.13.0",
Expand All @@ -55,7 +55,7 @@
},
"dependencies": {
"dayjs": "^1.10.7",
"ee-core": "^2.8.1",
"ee-core": "^2.9.2",
"electron-updater": "^5.3.0",
"lodash": "^4.17.21"
}
Expand Down

0 comments on commit cacab21

Please sign in to comment.