- Debug 模式:使用固定的 http://192.168.0.113 和 ws://192.168.0.113
- Release 模式:使用动态域名逻辑
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user