From b4ad21d233166d9ef931b452f7b62c9c2c7e0e1e Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Fri, 25 Jul 2025 18:54:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E7=BD=91=E7=BB=9C=E6=9C=8D=E5=8A=A1):=20?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=9C=B0=E5=8C=BA=E5=8A=A8=E6=80=81=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E6=9C=8D=E5=8A=A1=E5=99=A8URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改BleManager和DioManager,当设备地区非中国大陆时使用备用服务器URL。提升国际用户访问速度和服务稳定性。 --- lib/data/services/ble_manager.dart | 6 +++++- lib/data/services/network/dio_manager.dart | 14 +++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/data/services/ble_manager.dart b/lib/data/services/ble_manager.dart index 4c885ecc7..a793411f3 100644 --- a/lib/data/services/ble_manager.dart +++ b/lib/data/services/ble_manager.dart @@ -519,7 +519,11 @@ class BleManager extends GetxService { Future startAgentService() async { try { // 从.env文件直接读取环境变量 - final serverurl = dotenv.env['SERVER_URL'] ?? ''; + var serverurl = dotenv.env['SERVER_URL'] ?? ''; + if (Get.locale?.countryCode != 'CN') { + serverurl = dotenv.env['HW_SERVER_URL'] ?? ''; + } + var jsonString = _storage.read("logintoken"); Logger.info('启动BLE服务,serverurl: ${serverurl}'); // final azureSpeechRegion = dotenv.env['AZURE_SPEECH_REGION'] ?? 'eastasia'; diff --git a/lib/data/services/network/dio_manager.dart b/lib/data/services/network/dio_manager.dart index abdb7850f..0496c11f9 100644 --- a/lib/data/services/network/dio_manager.dart +++ b/lib/data/services/network/dio_manager.dart @@ -1,5 +1,6 @@ import 'package:dio/dio.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:get/get.dart' hide Response; import 'auth_interceptor.dart'; import 'nw_method.dart'; @@ -9,7 +10,18 @@ class DioManager { factory DioManager() => _shared; late Dio dio; - final baseUrl = dotenv.env['SERVER_URL'] ?? ""; + // 根据地区获取服务器URL + String get baseUrl { + final countryCode = Get.deviceLocale?.countryCode?.toUpperCase(); + final isChinaMainland = countryCode == 'CN'; + + if (!isChinaMainland) { + return dotenv.env['HW_SERVER_URL'] ?? dotenv.env['SERVER_URL'] ?? ''; + } else { + return dotenv.env['SERVER_URL'] ?? ''; + } + } + DioManager._internal() { BaseOptions options = BaseOptions( baseUrl: baseUrl,