- Debug 模式:使用固定的 http://192.168.0.113 和 ws://192.168.0.113

- Release 模式:使用动态域名逻辑
This commit is contained in:
2025-10-17 14:08:54 +08:00
parent e66424ba6e
commit f5bc239b6a
6 changed files with 286 additions and 262 deletions
+33 -6
View File
@@ -7,6 +7,7 @@ import 'dart:async';
import 'dart:convert';
import 'dart:math';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
/// 协议配置
class KRProtocol {
@@ -342,8 +343,14 @@ class KRDomain {
/// 预检测域名可用性(在应用启动时调用)
static Future<void> kr_preCheckDomains() async {
// Debug 模式下跳过域名预检测
if (kDebugMode) {
KRLogUtil.kr_i('🐛 Debug 模式,跳过域名预检测', tag: 'KRDomain');
return;
}
KRLogUtil.kr_i('🚀 开始预检测域名可用性', tag: 'KRDomain');
// 异步预检测,不阻塞应用启动
Future.microtask(() async {
try {
@@ -355,12 +362,12 @@ class KRDomain {
return; // 当前域名可用,不需要切换
}
}
// 快速检测第一个域名
if (kr_baseDomains.isNotEmpty) {
String firstDomain = kr_baseDomains.first;
bool isAvailable = await kr_fastCheckDomainAvailability(firstDomain);
if (isAvailable) {
KRLogUtil.kr_i('✅ 预检测成功,主域名可用: $firstDomain', tag: 'KRDomain');
// 预设置可用域名,避免后续切换
@@ -1020,8 +1027,19 @@ class AppConfig {
// static String baseUrl = "http://103.112.98.72:8088";
/// 请求域名地址
String get baseUrl => "${KRProtocol.kr_https}://${KRDomain.kr_api}";
String get wsBaseUrl => "${KRProtocol.kr_ws}://${KRDomain.kr_ws}";
String get baseUrl {
if (kDebugMode) {
return "http://192.168.0.113";
}
return "${KRProtocol.kr_https}://${KRDomain.kr_api}";
}
String get wsBaseUrl {
if (kDebugMode) {
return "ws://192.168.0.113";
}
return "${KRProtocol.kr_ws}://${KRDomain.kr_ws}";
}
static final AppConfig _instance = AppConfig._internal();
@@ -1080,9 +1098,18 @@ class AppConfig {
KRLogUtil.kr_w('配置初始化已在进行中,跳过重复调用', tag: 'AppConfig');
return;
}
_isInitializing = true;
try {
// Debug 模式下直接使用固定地址,跳过所有配置请求和域名切换逻辑
if (kDebugMode) {
KRLogUtil.kr_i('🐛 Debug 模式,使用固定 API 地址,跳过配置请求', tag: 'AppConfig');
if (onSuccess != null) {
await onSuccess();
}
return;
}
await _startAutoRetry(onSuccess);
} finally {
_isInitializing = false;