diff --git a/frontend/admin-app/lib/core/updater/version_checker.dart b/frontend/admin-app/lib/core/updater/version_checker.dart index 626a0e0..a56c4d2 100644 --- a/frontend/admin-app/lib/core/updater/version_checker.dart +++ b/frontend/admin-app/lib/core/updater/version_checker.dart @@ -1,6 +1,7 @@ import 'package:package_info_plus/package_info_plus.dart'; import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; +import 'dart:io' show Platform; import 'models/version_info.dart'; /// 版本检测器 @@ -27,26 +28,34 @@ class VersionChecker { final currentInfo = await getCurrentVersion(); debugPrint('[VersionChecker] 当前版本: ${currentInfo.version}, buildNumber: ${currentInfo.buildNumber}'); + final platform = Platform.isIOS ? 'IOS' : 'ANDROID'; final response = await _dio.get( - '/api/app/version/check', + '/api/v1/app/version/check', queryParameters: { - 'platform': 'android', + 'app_type': 'ADMIN_APP', + 'platform': platform, 'current_version': currentInfo.version, 'current_version_code': currentInfo.buildNumber, }, ); if (response.statusCode == 200 && response.data != null) { - final data = response.data is Map - ? response.data as Map - : (response.data['data'] as Map?) ?? response.data; + final responseMap = response.data as Map; + final data = (responseMap['data'] as Map?) ?? responseMap; - final needUpdate = data['needUpdate'] as bool? ?? true; + final needUpdate = data['needUpdate'] as bool? ?? false; if (!needUpdate) { debugPrint('[VersionChecker] 无需更新'); return null; } - return VersionInfo.fromJson(data); + + // Fix relative downloadUrl → prepend apiBaseUrl for backward compatibility + final rawUrl = data['downloadUrl'] as String? ?? ''; + final fixedData = (rawUrl.isNotEmpty && !rawUrl.startsWith('http')) + ? (Map.from(data)..['downloadUrl'] = '$apiBaseUrl$rawUrl') + : data; + + return VersionInfo.fromJson(fixedData); } return null; } catch (e) { diff --git a/frontend/genex-mobile/lib/core/updater/version_checker.dart b/frontend/genex-mobile/lib/core/updater/version_checker.dart index c5d46a1..3e8eed2 100644 --- a/frontend/genex-mobile/lib/core/updater/version_checker.dart +++ b/frontend/genex-mobile/lib/core/updater/version_checker.dart @@ -1,6 +1,7 @@ import 'package:package_info_plus/package_info_plus.dart'; import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; +import 'dart:io' show Platform; import 'models/version_info.dart'; /// 版本检测器 @@ -27,11 +28,12 @@ class VersionChecker { final currentInfo = await getCurrentVersion(); debugPrint('[VersionChecker] 当前版本: ${currentInfo.version}, buildNumber: ${currentInfo.buildNumber}'); + final platform = Platform.isIOS ? 'IOS' : 'ANDROID'; final response = await _dio.get( '/api/v1/app/version/check', queryParameters: { 'app_type': 'GENEX_MOBILE', - 'platform': 'android', + 'platform': platform, 'current_version': currentInfo.version, 'current_version_code': currentInfo.buildNumber, },