Browse Source

refactor(version_update): 优化版本更新信息获取逻辑

newdev_shunjiawei
lxm 12 months ago
parent
commit
690fdc8e79
  1. 73
      lib/data/services/version_update_service.dart
  2. 28
      lib/modules/settings/controllers/settings_controller.dart

73
lib/data/services/version_update_service.dart

@ -119,6 +119,9 @@ class VersionUpdateService extends GetxService {
} }
/// 根据设备品牌获取应用商店信息 /// 根据设备品牌获取应用商店信息
///
/// 该方法根据设备品牌判断应用商店类型,并返回对应的 [PlatformInfo] 对象。
/// 如果品牌不在预设列表中,将使用环境变量 [Channel] 或默认值 [UserChannel.GLOBAL_GOOGLE]。
Future<PlatformInfo> getAndroidStoreInfoByBrand() async { Future<PlatformInfo> getAndroidStoreInfoByBrand() async {
try { try {
final deviceInfo = DeviceInfoPlugin(); final deviceInfo = DeviceInfoPlugin();
@ -129,49 +132,37 @@ class VersionUpdateService extends GetxService {
String channelFromEnv = dotenv.env['Channel'] ?? 'OFFICIAL'; String channelFromEnv = dotenv.env['Channel'] ?? 'OFFICIAL';
_channel = UserChannel.fromName(channelFromEnv); _channel = UserChannel.fromName(channelFromEnv);
UserChannel brandChannel; //品牌渠道,只用于请求版本更新信息
switch (brand) {
case 'huawei':
brandChannel = UserChannel.CHINA_HUAWEI;
break;
case 'xiaomi':
case 'redmi':
brandChannel = UserChannel.CHINA_XIAOMI;
break;
case 'oppo':
case 'oneplus':
brandChannel = UserChannel.CHINA_OPPO;
break;
case 'vivo':
case 'iqoo':
brandChannel = UserChannel.CHINA_VIVO;
break;
case 'honor':
brandChannel = UserChannel.CHINA_HONOR;
break;
default:
brandChannel = _channel ?? UserChannel.GLOBAL_GOOGLE;
break;
}
return PlatformInfo( return PlatformInfo(
platform: 'android', platform: 'android',
storeType: AppStoreType.official, storeType: AppStoreType.official,
channel: _channel ?? UserChannel.OFFICIAL, channel: brandChannel,
); );
// switch (brand) {
// case 'huawei':
// case 'honor':
// return PlatformInfo(
// platform: 'android',
// storeType:
// brand == 'huawei' ? AppStoreType.huawei : AppStoreType.honor,
// channel: brand == 'huawei' ? '华为应用市场' : '荣耀应用市场',
// );
// case 'xiaomi':
// case 'redmi':
// return const PlatformInfo(
// platform: 'android',
// storeType: AppStoreType.xiaomi,
// channel: '小米应用商店',
// );
// case 'oppo':
// case 'oneplus':
// return const PlatformInfo(
// platform: 'android',
// storeType: AppStoreType.oppo,
// channel: 'OPPO软件商店',
// );
// case 'vivo':
// case 'iqoo':
// return const PlatformInfo(
// platform: 'android',
// storeType: AppStoreType.vivo,
// channel: 'vivo应用商店',
// );
// default:
// return const PlatformInfo(
// platform: 'android',
// storeType: AppStoreType.googlePlay,
// channel: 'Google Play',
// );
// }
} catch (e) { } catch (e) {
_logger.e('获取Android设备信息失败: $e'); _logger.e('获取Android设备信息失败: $e');
return const PlatformInfo( return const PlatformInfo(
@ -205,14 +196,14 @@ class VersionUpdateService extends GetxService {
final platformInfo = await getCurrentPlatformInfo(); final platformInfo = await getCurrentPlatformInfo();
_platform = platformInfo.platform; _platform = platformInfo.platform;
_channel = platformInfo.channel; //_channel = platformInfo.channel;
_lastCheckTime = DateTime.now(); _lastCheckTime = DateTime.now();
// 调用后端接口获取最新版本信息 // 调用后端接口获取最新版本信息
final response = final response =
await Api.getChannelApp({'channel': platformInfo.channel.value}); await Api.getChannelApp({'channel': platformInfo.channel.value});
_logger.d('获取渠道包信息:$response'); _logger.d('lxm--获取渠道包信息:$response');
if (response == null || !response.containsKey('app')) { if (response == null || !response.containsKey('app')) {
//[2]获取渠道包信息失败: 响应为空或不包含app字段 //[2]获取渠道包信息失败: 响应为空或不包含app字段

28
lib/modules/settings/controllers/settings_controller.dart

@ -629,20 +629,20 @@ class SettingsController extends GetxController {
try { try {
final versionService = Get.find<VersionUpdateService>(); final versionService = Get.find<VersionUpdateService>();
return ''' return '''
应用版本: ${versionService.cachedAppVersion} 应用版本: ${versionService.cachedAppVersion}
构建号: ${versionService.cachedBuildNumber} 构建号: ${versionService.cachedBuildNumber}
平台: ${versionService.cachedPlatform} 平台: ${versionService.cachedPlatform}
设备品牌: ${versionService.cachedDeviceBrand} 设备品牌: ${versionService.cachedDeviceBrand}
渠道: ${versionService.cachedChannel} 渠道: ${versionService.cachedChannel}
最新版本: ${versionService.cachedLatestVersion} 最新版本: ${versionService.cachedLatestVersion}
有更新: ${versionService.cachedHasUpdate} 有更新: ${versionService.cachedHasUpdate}
强制更新: ${versionService.cachedIsForceUpdate} 强制更新: ${versionService.cachedIsForceUpdate}
更新链接: ${versionService.cachedUpdateUrl} 更新链接: ${versionService.cachedUpdateUrl}
游客模式: ${versionService.cachedShowTourists} 游客模式: ${versionService.cachedShowTourists}
最近版本检查时间: ${versionService.lastCheckTime ?? '未检查'} 最近版本检查时间: ${versionService.lastCheckTime ?? '未检查'}
国家地区编码: ${versionService.cachedCountryCode} 国家地区编码: ${versionService.cachedCountryCode}
语言编码: ${versionService.cachedLanguageCode} 语言编码: ${versionService.cachedLanguageCode}
服务器地址: ${versionService.cachedServerUrl} 服务器地址: ${versionService.cachedServerUrl}
'''; ''';
} catch (e) { } catch (e) {
return '获取版本服务数据失败: $e'; return '获取版本服务数据失败: $e';

Loading…
Cancel
Save