У меня здесь очень запутанная проблема.На главном экране приложения у меня есть виджет, который возвращает дочерний виджет, если интернет подключен.еще изображение в дочернем виджете, которое сообщает о потерянном соединении.
Консоль Печать переменной для логики:
flutter: Connectivity Status: null
обычно она работает на Android довольно хорошо.но на ios при запуске приложения он показывает, что образ потери соединения, даже если связь есть.
Поскольку виджет должен возвращать что-то, у меня есть следующий код, и в нем я попытался напечатать переменную connectivityStatus,проблема в том, что вместо того, чтобы возвращать меня в автономном режиме при запуске, если он не обнаружил подключение, он возвращает ноль.и это ноль - проблема.
Если я переключаю Wi-Fi или сотовый интернет и повторяю, изображение исчезает, и все работает нормально на ios.эти шаги не являются обязательными для Android.
@override
Widget build(BuildContext context) {
var connectivityStatus = Provider.of<ConnectivityStatus>(context);
if (connectivityStatus == ConnectivityStatus.Cellular) {
return widget.child;
}
if (connectivityStatus == ConnectivityStatus.WiFi) {
return widget.child;
}
// if (connectivityStatus == null) {
// print("current Connectivity Status in null condition before delay : $connectivityStatus");
// Future.delayed(Duration(milliseconds: 50000), (){
// print("current Connectivity Status in null condition after delay : $connectivityStatus");
// });
// }
setState(() {
print(x);
});
if(x) {
return Stack(
children: <Widget>[
widget.child,
Container(
color: Colors.black.withOpacity(0.95),
),
Image.asset('images/connectivity_lost_dark_pattern.png')
],
);
}
return Stack(
children: <Widget>[
widget.child,
Container(
color: Colors.white.withOpacity(0.95),
),
Image.asset('images/connectivity_lost_light_pattern.png')
],
);
}
В приведенном выше коде вы можете видеть, что это закомментированный раздел, чтобы узнать, можно ли получить значение ConnectivityStatus с использованием будущей задержки.Я попытался значение от 500 миллисекунд до 500000 миллисекунд, но бесполезно, поскольку он был нулевым, даже после этого.
Завершить журнал после перезагрузки после отключения Wi-Fi и снова, на котором удаляется изображение и приложение может использоваться:
Performing hot reload...
Syncing files to device iPhone 11 Pro Max...
flutter: Connectivity Status: null
flutter: false
flutter: false
flutter: 5.0
Reloaded 4 of 674 libraries in 443ms.
flutter: false
flutter: 5.0
flutter: r = ConnectivityStatus.Offline
flutter: Connectivity Status: ConnectivityStatus.Offline
flutter: false
flutter: r = ConnectivityStatus.WiFi
flutter: Connectivity Status: ConnectivityStatus.WiFi
flutter: 5.0
flutter: false
flutter: 5.0
flutter: 5.0
Нужно найти причину, по которой провайдер дает ноль.потому что это корень всего этого беспорядка.