Sfoglia il codice sorgente

fix: 自动更新软件包,安装成功提示

szy 2 settimane fa
parent
commit
8be8e09434
3 ha cambiato i file con 25 aggiunte e 18 eliminazioni
  1. 13 10
      config/dev.ts
  2. 2 2
      src/API/versionUpdate.ts
  3. 10 6
      src/services/VersionUpdateService.ts

+ 13 - 10
config/dev.ts

@@ -38,25 +38,25 @@ class BuildTimerPlugin {
       const duration = Date.now() - this.buildStartTime;
       const seconds = (duration / 1000).toFixed(2);
       const time = new Date().toLocaleTimeString('zh-CN', { hour12: false });
-      
+
       // 获取编译的模块数量
       const modulesCount = stats.compilation.modules.size;
-      
+
       // 判断是否有错误或警告
       const hasErrors = stats.hasErrors();
       const hasWarnings = stats.hasWarnings();
-      
+
       console.log(`${hasErrors ? '❌' : '✅'} [构建 #${this.buildNumber}] 编译${hasErrors ? '失败' : '完成'}! ${time}`);
       console.log(`⏱️  耗时: ${seconds}s (${duration}ms)`);
       console.log(`📊 模块数: ${modulesCount}`);
-      
+
       if (hasErrors) {
         console.log(`⚠️  错误: ${stats.compilation.errors.length} 个`);
       }
       if (hasWarnings) {
         console.log(`⚠️  警告: ${stats.compilation.warnings.length} 个`);
       }
-      
+
       console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
     });
   }
@@ -68,7 +68,8 @@ export default {
     stats: true,
   },
   defineConstants: {
-    MQTT_BROKER_URL_FROM_WEBPACK: '"ws://192.168.110.13:8083/mqtt"',
+    // MQTT_BROKER_URL_FROM_WEBPACK: '"ws://192.168.110.13:8083/mqtt"',
+    MQTT_BROKER_URL_FROM_WEBPACK: '"ws://192.168.110.245:8083/mqtt"',
   },
   mini: {},
   h5: {
@@ -80,14 +81,16 @@ export default {
     devServer: {
       proxy: {
         '/dr': {
-          target: 'http://192.168.110.245:6001', // 你的后端服务地址
+          // target: 'http://192.168.110.13:6001', // 你的后端服务地址
+          target: 'http://192.168.110.245:6001',
           changeOrigin: true, // 允许跨域
           // pathRewrite: {
           //   '^/dr/api': '' // 可选,用于重写路径
           // }
         },
         '/mqtt': {
-          target: 'ws://192.168.110.245:8083', // MQTT WebSocket 服务地址
+          // target: 'ws://192.168.110.13:8083', // MQTT WebSocket 服务地址
+          target: 'ws://192.168.110.245:8083',
           changeOrigin: true,
           ws: true, // 启用 WebSocket 代理
           // pathRewrite: {
@@ -126,8 +129,8 @@ export default {
         chain.plugin('define').use(webpack.DefinePlugin, [{}]);
       }
       /* 1. 把 Taro 可能注入的所有 react-refresh 插件先删掉 */
-      chain.plugins.delete('react-refresh')          // 3.5 之前
-      chain.plugins.delete('ReactRefreshWebpackPlugin') // 3.6+ 可能叫这个
+      chain.plugins.delete('react-refresh'); // 3.5 之前
+      chain.plugins.delete('ReactRefreshWebpackPlugin'); // 3.6+ 可能叫这个
       /* 2. 重新注册,强制关闭 overlay */
       chain
         .plugin('ReactRefreshWebpackPlugin') // 名字随意,保证唯一

+ 2 - 2
src/API/versionUpdate.ts

@@ -29,7 +29,7 @@ export const downloadPackage = async (version: string): Promise<any> => {
     method: 'POST',
     data: {
       name: 'backend',
-      version: version
+      version,
     }
   });
 
@@ -47,7 +47,7 @@ export const installPackage = async (version: string): Promise<any> => {
     method: 'POST',
     data: {
       name: 'backend',
-      version: version
+      version,
     }
   });
 

+ 10 - 6
src/services/VersionUpdateService.ts

@@ -1,4 +1,5 @@
 import store from '../states/store';
+import { message } from 'antd';
 import { checkVersion, downloadPackage, installPackage } from '../API/versionUpdate';
 import { mqttUtils } from '../utils/mqttUtils';
 import { compareVersions, shouldShowUpdatePrompt, shouldTriggerRemindLater } from '../utils/versionUtils';
@@ -16,7 +17,7 @@ import {
 // 常量定义
 const DOWNLOAD_TOPIC = 'MODULE/TASK/DOWNLOAD/PACKAGE';
 const REMIND_LATER_HOURS = 24; // 稍后提醒间隔(小时)
-
+let _version;
 /**
  * 版本更新服务类
  * 处理版本检查、下载、安装等业务逻辑
@@ -79,13 +80,12 @@ class VersionUpdateService {
    */
   async startDownload(version: string): Promise<void> {
     try {
+      _version = version;
       console.log(`开始下载版本: ${version}`);
 
       // 设置用户选择
       store.dispatch(setUserChoice('update_now'));
 
-      // 调用下载API
-      await downloadPackage(version);
 
       // 订阅MQTT进度消息
       await mqttUtils.subscribeDownloadProgress(
@@ -93,6 +93,9 @@ class VersionUpdateService {
         this.handleMqttDownloadMessage.bind(this)
       );
 
+      // 调用下载API
+      await downloadPackage(version);
+
       // 设置状态为下载中
       store.dispatch(setUpdateStatus('downloading'));
 
@@ -132,7 +135,7 @@ class VersionUpdateService {
 
         case 'SUCCESS':
           // 下载完成,准备安装
-          this.handleDownloadComplete(message.name);
+          this.handleDownloadComplete(_version);
           break;
 
         case 'FAILURE':
@@ -148,7 +151,7 @@ class VersionUpdateService {
   /**
    * 处理下载完成
    */
-  private async handleDownloadComplete(packageName: string): Promise<void> {
+  private async handleDownloadComplete(version: string): Promise<void> {
     try {
       console.log('下载完成,开始安装...');
 
@@ -159,7 +162,7 @@ class VersionUpdateService {
       store.dispatch(setUpdateStatus('installing'));
 
       // 调用安装API
-      await installPackage(packageName);
+      await installPackage(version);
 
       // 安装成功
       console.log('安装完成');
@@ -215,6 +218,7 @@ class VersionUpdateService {
     // 这里可以触发全局提示或弹窗
     console.log('更新安装成功!建议重启应用程序以应用更新。');
     // 可以在这里添加重启逻辑或提示用户手动重启
+    message.success('更新安装成功!建议重启应用程序以应用更新。');
   }
 
   /**