From d71d1d49c063395fd459c1402148d90d04ab036b Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Wed, 22 Oct 2025 14:46:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(splash):=20=E4=BC=98=E5=8C=96=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E6=A3=80=E6=9F=A5=E9=80=BB=E8=BE=91=EF=BC=8C=E7=AE=80?= =?UTF-8?q?=E5=8C=96=E6=9D=A1=E4=BB=B6=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构网络检查流程,将原来的双重否定条件改为正向判断,提高代码可读性 同时合并网络检查和外部连通性检查的条件分支,使逻辑更清晰 --- .../splash/controllers/splash_controller.dart | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/modules/splash/controllers/splash_controller.dart b/lib/modules/splash/controllers/splash_controller.dart index 64e353d77..49454294b 100644 --- a/lib/modules/splash/controllers/splash_controller.dart +++ b/lib/modules/splash/controllers/splash_controller.dart @@ -108,30 +108,30 @@ class SplashController extends GetxController { // 无限循环直到网络检查成功 try { final connectivityResult = await Connectivity().checkConnectivity(); + final hasConnectivity = + !connectivityResult.contains(ConnectivityResult.none); - // 检查是否有网络连接 - if (connectivityResult.contains(ConnectivityResult.none)) { - // 显示弹窗并等待用户操作 - await _showNoNetworkDialogAndWait(); - continue; // 重新检查 + // 条件变更:满足“有网络连接”或“能访问至少一个测试地址”之一即通过 + if (hasConnectivity) { + Logger.d(_tag, '网络检查通过:检测到设备网络连接'); + break; } - // 进一步检查网络连通性 + // 若设备层面无网络标识,再尝试外网连通性 final hasInternet = await _checkInternetConnection(); - if (!hasInternet) { - // 显示弹窗并等待用户操作 - await _showNoNetworkDialogAndWait(); - continue; // 重新检查 + if (hasInternet) { + Logger.d(_tag, '网络检查通过:可访问外网测试地址'); + break; } - // 网络检查成功,跳出循环 - Logger.d(_tag, '网络检查成功,继续APP初始化流程'); - break; + // 两个条件都不满足,提示并重试 + await _showNoNetworkDialogAndWait(); + continue; } catch (e) { Logger.e(_tag, '网络检查失败: $e'); - // 显示弹窗并等待用户操作 + Logger.e(_tag, '网络检查异常: $e'); await _showNoNetworkDialogAndWait(); - continue; // 重新检查 + continue; } } }