我想实施 flutter_bloc 和 connectivity_plus 来检查网络连接。怎么做?
I want to Implement flutter_bloc and connectivity_plus to check for network connections. how to do it?
我已经尝试了很多博客和东西来做这件事,但是 none 其中有工作或已过时或抛出未知错误。
我被指示使用 bloc 创建网络连接检查器。
但是,我对集团知之甚少。
请分享解释如何执行此操作的任何 git 存储库或代码。
#颤动
在 bloc 中注册流订阅并更改侦听连接。
当连接发生变化时,运行 事件更新状态
class NetworkChangeBloc extends Bloc<NetworkChangeEvent, NetworkChangeState> {
final ConnectivityService _service;
late StreamSubscription<bool> _subscription;
NetworkChangeBloc()
: _service = ConnectivityService(),
super(NetworkChangeInitial()) {
on<NetworkChangeEvent>(_mapEventNetworkChange);
_subscription = _service.initStream().listen((isNetworkConnected) {
add(NetworkChangeEvent(isNetworkConnected));
});
}
@override
Future<void> close() async {
await _service.dispose();
await _subscription.cancel();
return super.close();
}
void _mapEventNetworkChange(
NetworkChangeEvent event,
Emitter<NetworkChangeState> emit,
) async {
bool isNetworkConnected = event.isNetworkConnected;
emit(NetworkChangeState(isConnected: isNetworkConnected));
}
}
我在这里不使用 connectivity_plus 包,但您可以应用此解决方案
我已经尝试了很多博客和东西来做这件事,但是 none 其中有工作或已过时或抛出未知错误。 我被指示使用 bloc 创建网络连接检查器。 但是,我对集团知之甚少。 请分享解释如何执行此操作的任何 git 存储库或代码。 #颤动
在 bloc 中注册流订阅并更改侦听连接。
当连接发生变化时,运行 事件更新状态
class NetworkChangeBloc extends Bloc<NetworkChangeEvent, NetworkChangeState> {
final ConnectivityService _service;
late StreamSubscription<bool> _subscription;
NetworkChangeBloc()
: _service = ConnectivityService(),
super(NetworkChangeInitial()) {
on<NetworkChangeEvent>(_mapEventNetworkChange);
_subscription = _service.initStream().listen((isNetworkConnected) {
add(NetworkChangeEvent(isNetworkConnected));
});
}
@override
Future<void> close() async {
await _service.dispose();
await _subscription.cancel();
return super.close();
}
void _mapEventNetworkChange(
NetworkChangeEvent event,
Emitter<NetworkChangeState> emit,
) async {
bool isNetworkConnected = event.isNetworkConnected;
emit(NetworkChangeState(isConnected: isNetworkConnected));
}
}
我在这里不使用 connectivity_plus 包,但您可以应用此解决方案