diff --git a/lib/data/services/network/dio_manager.dart b/lib/data/services/network/dio_manager.dart index 43de8d723..f4a2c9574 100644 --- a/lib/data/services/network/dio_manager.dart +++ b/lib/data/services/network/dio_manager.dart @@ -1,7 +1,11 @@ +import 'dart:io'; + import 'package:dio/dio.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:get/get.dart' hide Response; +import '../../models/channel_app_model.dart'; +import '../version_update_service.dart'; import 'auth_interceptor.dart'; import 'nw_method.dart'; @@ -10,12 +14,29 @@ class DioManager { factory DioManager() => _shared; late Dio dio; + + // 获取当前渠道信息,优先从版本服务获取,降级到平台判断和.env + UserChannel get _currentChannel { + try { + if (Get.isRegistered()) { + // print("lxm---${VersionUpdateService.to.cachedChannel}"); + return VersionUpdateService.to.cachedChannel; + } + } catch (_) {} + // 版本服务未就绪时,根据平台判断 + if (Platform.isIOS) { + return UserChannel.GLOBAL_APPLE; + } + final channelName = dotenv.env['Channel'] ?? 'OFFICIAL'; + return UserChannel.fromName(channelName); + } + // 根据地区获取服务器URL String get baseUrl { final countryCode = Get.deviceLocale?.countryCode?.toUpperCase(); final isChinaMainland = countryCode == 'CN'; - final channel = dotenv.env['Channel'] ?? 'OFFICIAL'; - if (!isChinaMainland || channel == "GLOBAL_GOOGLE") { + final channel = _currentChannel; + if (!isChinaMainland || channel == UserChannel.GLOBAL_GOOGLE) { return dotenv.env['HW_SERVER_URL'] ?? ''; } else { return dotenv.env['SERVER_URL'] ?? ''; diff --git a/pubspec.yaml b/pubspec.yaml index 708aecb4b..abe87d33e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: voitrans description: "Voitrans - AI Voice Assistant." publish_to: "none" -version: 1.0.24+98 +version: 1.0.25+99 environment: sdk: ">=3.3.0 <4.0.0"