|
@@ -31,14 +31,30 @@ class OTAController extends Controller {
|
|
|
|
|
|
|
|
const win = new BrowserWindow({ show: false });
|
|
const win = new BrowserWindow({ show: false });
|
|
|
|
|
|
|
|
|
|
+
|
|
|
// 设置下载路径为系统临时目录
|
|
// 设置下载路径为系统临时目录
|
|
|
|
|
|
|
|
win.webContents.downloadURL(url);
|
|
win.webContents.downloadURL(url);
|
|
|
|
|
|
|
|
|
|
+ win.webContents.session.removeAllListeners('will-download');
|
|
|
|
|
|
|
|
win.webContents.session.on('will-download', (event, item, webContents) => {
|
|
win.webContents.session.on('will-download', (event, item, webContents) => {
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+ // event.preventDefault();
|
|
|
|
|
+ // 设置默认下载路径为系统下载目录
|
|
|
|
|
+ const fileName = item.getFilename();
|
|
|
|
|
+ const downloadPath = path.join(app.getPath('downloads'), fileName);
|
|
|
|
|
+ console.log('下载路径:', downloadPath);
|
|
|
|
|
+
|
|
|
|
|
+ // 确保目录存在
|
|
|
|
|
+ const dir = path.dirname(downloadPath);
|
|
|
|
|
+ if (!fs.existsSync(dir)) {
|
|
|
|
|
+ fs.mkdirSync(dir, { recursive: true });
|
|
|
|
|
+ }
|
|
|
|
|
+ if (fs.existsSync(downloadPath)) {
|
|
|
|
|
+ fs.unlinkSync(downloadPath); // 删除旧文件
|
|
|
|
|
+ }
|
|
|
|
|
+ console.log(item);
|
|
|
|
|
+ item.setSavePath(downloadPath);
|
|
|
|
|
|
|
|
|
|
|
|
|
item.on('updated', (event, state) => {
|
|
item.on('updated', (event, state) => {
|
|
@@ -69,6 +85,7 @@ class OTAController extends Controller {
|
|
|
item.once('done', (event, state) => {
|
|
item.once('done', (event, state) => {
|
|
|
|
|
|
|
|
Log.info('[addon:done] 状态: ', state);
|
|
Log.info('[addon:done] 状态: ', state);
|
|
|
|
|
+
|
|
|
if (state === 'completed') {
|
|
if (state === 'completed') {
|
|
|
Log.info('[addon:autoUpdater] 文件已下载完成: ', item.getSavePath());
|
|
Log.info('[addon:autoUpdater] 文件已下载完成: ', item.getSavePath());
|
|
|
let info = {
|
|
let info = {
|
|
@@ -83,11 +100,12 @@ class OTAController extends Controller {
|
|
|
type: 'info',
|
|
type: 'info',
|
|
|
title: '下载完成',
|
|
title: '下载完成',
|
|
|
message: '文件已下载完成,请选择操作:',
|
|
message: '文件已下载完成,请选择操作:',
|
|
|
- buttons: ['立即安装', '打开目录', '取消']
|
|
|
|
|
|
|
+ buttons: ['关闭智惠映并自动安装', '打开目录手动安装', '取消']
|
|
|
}).then(result => {
|
|
}).then(result => {
|
|
|
if (result.response === 0) {
|
|
if (result.response === 0) {
|
|
|
// 用户选择“立即安装”,执行安装操作
|
|
// 用户选择“立即安装”,执行安装操作
|
|
|
this.install(item.getSavePath());
|
|
this.install(item.getSavePath());
|
|
|
|
|
+
|
|
|
} else if (result.response === 1) {
|
|
} else if (result.response === 1) {
|
|
|
// 用户选择“打开目录”,打开文件所在目录
|
|
// 用户选择“打开目录”,打开文件所在目录
|
|
|
shell.openPath(path.dirname(item.getSavePath()));
|
|
shell.openPath(path.dirname(item.getSavePath()));
|