internet_connection_helper.dart 937 B

123456789101112131415161718192021222324252627282930313233343536
  1. import 'dart:async';
  2. import 'package:internet_connection_checker/internet_connection_checker.dart';
  3. import '../dialog/net_error_dialog.dart';
  4. class InternetConnectionHelper {
  5. InternetConnectionHelper._();
  6. static StreamSubscription<InternetConnectionStatus>? _subscription;
  7. ///当前网络是否可用
  8. static Future<bool> isConnected() {
  9. return InternetConnectionChecker.instance.hasConnection;
  10. }
  11. static void startInternetConnection() {
  12. _subscription?.cancel();
  13. _subscription = InternetConnectionChecker.instance.onStatusChange.listen(
  14. (InternetConnectionStatus status) {
  15. if (status == InternetConnectionStatus.connected) {
  16. //有网
  17. NetErrorDialog.dismiss();
  18. } else {
  19. //无网络|网络差
  20. NetErrorDialog.show();
  21. }
  22. },
  23. );
  24. }
  25. //一般不需要调用
  26. static void stopInternetConnection() {
  27. _subscription?.cancel();
  28. }
  29. }