From cb6de34a14d312ce8fa754dc4b480f7025e03e8d Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Tue, 24 Mar 2026 20:54:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E4=B8=AD=E6=B8=A0=E9=81=93=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BB=A5=E6=AD=A3=E7=A1=AE=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整DioManager中渠道信息的获取方式,优先从VersionUpdateService获取缓存的渠道信息,避免在服务未就绪时直接读取环境变量导致的渠道判断错误。当版本服务不可用时,降级使用平台判断(iOS为GLOBAL_APPLE)和环境变量兜底,确保服务器URL选择逻辑的可靠性。 --- lib/data/services/network/dio_manager.dart | 25 ++++++++++++++++++++-- pubspec.yaml | 2 +- 2 files changed, 24 insertions(+), 3 deletions(-) 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"