|
|
|
@ -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; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|