- 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
@@ -30,6 +30,9 @@ class KRHomeController extends GetxController {
// 修改地图控制器为可空类型
MapController kr_mapController = MapController();
// 底部面板控制器
DraggableScrollableController kr_sheetController = DraggableScrollableController();
/// 当前视图状态,登录状态
final Rx<KRHomeViewsStatus> kr_currentViewStatus =
KRHomeViewsStatus.kr_notLoggedIn.obs;
@@ -320,6 +323,12 @@ class KRHomeController extends GetxController {
} else {
kr_updateBottomPanelHeight();
}
// 刷新地图标记显示
showMarkersMap();
// 调试:打印节点坐标信息
Future.delayed(const Duration(milliseconds: 500), () {
kr_debugPrintNodeCoordinates();
});
break;
case KRSubscribeServiceStatus.kr_none:
KRLogUtil.kr_i('订阅服务未初始化', tag: 'HomeController');
@@ -544,6 +553,8 @@ class KRHomeController extends GetxController {
} else {
await KRSingBoxImp.instance.kr_stop();
}
// 刷新地图标记
showMarkersMap();
} catch (e) {
KRLogUtil.kr_e('切换失败: $e', tag: 'HomeController');
// 当启动失败时(如VPN权限被拒绝),强制同步状态
@@ -1033,6 +1044,35 @@ class KRHomeController extends GetxController {
});
}
/// 刷新地图标记
void showMarkersMap() {
KRLogUtil.kr_i('========== 刷新地图标记 ==========', tag: 'HomeController');
KRLogUtil.kr_i('当前选中节点: ${kr_cutSeletedTag.value}', tag: 'HomeController');
KRLogUtil.kr_i('可用节点数: ${kr_subscribeService.allList.length}', tag: 'HomeController');
KRLogUtil.kr_i('国家分组数: ${kr_subscribeService.countryOutboundList.length}', tag: 'HomeController');
// 手动触发地图标记更新
update(['map_markers']);
KRLogUtil.kr_i('✅ 地图标记更新完成', tag: 'HomeController');
}
/// 选择地图标记
void selectMarkerMap(int index) {
try {
if (index >= 0 && index < kr_subscribeService.allList.length) {
// 重置所有节点的选中状态
for (var item in kr_subscribeService.allList) {
item.selected = 0;
}
// 设置当前节点为选中状态
kr_subscribeService.allList[index].selected = 1;
// 手动触发更新
update(['map_markers']);
}
} catch (e) {
KRLogUtil.kr_e('选择地图标记失败: $e', tag: 'HomeController');
}
}
/// 手动触发 SingBox URL 测试(调试用)
Future<void> kr_manualUrlTest() async {
try {
@@ -1207,6 +1247,48 @@ class KRHomeController extends GetxController {
kr_currentNodeLatency.value = -2; // 设置为未连接状态
}
/// 调试:打印所有节点的坐标信息
void kr_debugPrintNodeCoordinates() {
KRLogUtil.kr_i('========== 节点坐标调试信息 ==========', tag: 'HomeController');
KRLogUtil.kr_i('节点总数: ${kr_subscribeService.allList.length}', tag: 'HomeController');
if (kr_subscribeService.allList.isEmpty) {
KRLogUtil.kr_w('节点列表为空!请检查:', tag: 'HomeController');
KRLogUtil.kr_w('1. 是否已登录', tag: 'HomeController');
KRLogUtil.kr_w('2. 是否有订阅', tag: 'HomeController');
KRLogUtil.kr_w('3. 订阅是否已加载完成', tag: 'HomeController');
return;
}
int validNodes = 0;
int invalidNodes = 0;
for (int i = 0; i < kr_subscribeService.allList.length; i++) {
final node = kr_subscribeService.allList[i];
if (node.latitude != 0.0 || node.longitude != 0.0) {
validNodes++;
if (i < 5) { // 只打印前5个有效节点
KRLogUtil.kr_i('节点[$i] ${node.tag}: (${node.latitude}, ${node.longitude})', tag: 'HomeController');
}
} else {
invalidNodes++;
if (i < 3) { // 只打印前3个无效节点
KRLogUtil.kr_w('节点[$i] ${node.tag}: 坐标为(0, 0) - 无效!', tag: 'HomeController');
}
}
}
KRLogUtil.kr_i('有效节点: $validNodes', tag: 'HomeController');
KRLogUtil.kr_w('无效节点(坐标为0): $invalidNodes', tag: 'HomeController');
if (invalidNodes > 0) {
KRLogUtil.kr_w('⚠️ 发现 $invalidNodes 个节点坐标为0,这些节点不会显示在地图上', tag: 'HomeController');
KRLogUtil.kr_w('可能原因:', tag: 'HomeController');
KRLogUtil.kr_w('1. 后端API未返回 latitude/longitude 字段', tag: 'HomeController');
KRLogUtil.kr_w('2. 后端数据库中节点坐标未配置', tag: 'HomeController');
}
}
/// 强制同步连接状态
void kr_forceSyncConnectionStatus() {
try {