RQNetworkReachabilityManager.m 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // RQNetworkReachabilityManager.m
  3. // jiaPei
  4. //
  5. // Created by 张嵘 on 2018/12/4.
  6. // Copyright © 2018 JCZ. All rights reserved.
  7. //
  8. #import "RQNetworkReachabilityManager.h"
  9. @interface RQNetworkReachabilityManager ()
  10. @property (nonatomic, assign, readwrite) AFNetworkReachabilityStatus networkReachabilityStatus;
  11. @end
  12. @implementation RQNetworkReachabilityManager
  13. + (instancetype)shareManager
  14. {
  15. static RQNetworkReachabilityManager *manager = nil;
  16. static dispatch_once_t onceToken;
  17. dispatch_once(&onceToken, ^{
  18. manager = [[self alloc] init];
  19. });
  20. return manager;
  21. }
  22. // 监听网络状态
  23. - (void)monitorNetworkStatus {
  24. // 创建网络监听者
  25. AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
  26. [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
  27. /// 检查版本更新
  28. [RQ_SHARE_FUNCTION checkVersion];
  29. switch (status) {
  30. case AFNetworkReachabilityStatusUnknown:
  31. // 未知网络
  32. NSLog(@"当前网络:未知网络");
  33. break;
  34. case AFNetworkReachabilityStatusNotReachable:
  35. // 无网络
  36. NSLog(@"当前网络:无网络");
  37. break;
  38. case AFNetworkReachabilityStatusReachableViaWWAN:
  39. // 蜂窝数据
  40. NSLog(@"当前网络:蜂窝数据");
  41. break;
  42. case AFNetworkReachabilityStatusReachableViaWiFi:
  43. // 无线网络
  44. NSLog(@"当前网络:无线网络");
  45. break;
  46. default:
  47. break;
  48. }
  49. if (_networkReachabilityStatus != status) {
  50. _networkReachabilityStatus = status;
  51. // 网络改变通知
  52. [[NSNotificationCenter defaultCenter] postNotificationName:RQNetworkingReachabilityDidChangeNotification object:[NSNumber numberWithInteger:status]];
  53. }
  54. }];
  55. // 开始监听
  56. [manager startMonitoring];
  57. }
  58. @end