RQNetworkReachabilityManager.m 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. switch (status) {
  28. case AFNetworkReachabilityStatusUnknown:
  29. // 未知网络
  30. NSLog(@"当前网络:未知网络");
  31. break;
  32. case AFNetworkReachabilityStatusNotReachable:
  33. // 无网络
  34. NSLog(@"当前网络:无网络");
  35. break;
  36. case AFNetworkReachabilityStatusReachableViaWWAN:
  37. // 蜂窝数据
  38. NSLog(@"当前网络:蜂窝数据");
  39. break;
  40. case AFNetworkReachabilityStatusReachableViaWiFi:
  41. // 无线网络
  42. NSLog(@"当前网络:无线网络");
  43. break;
  44. default:
  45. break;
  46. }
  47. if (_networkReachabilityStatus != status) {
  48. _networkReachabilityStatus = status;
  49. // 网络改变通知
  50. [[NSNotificationCenter defaultCenter] postNotificationName:RQNetworkingReachabilityDidChangeNotification object:[NSNumber numberWithInteger:status]];
  51. }
  52. }];
  53. // 开始监听
  54. [manager startMonitoring];
  55. }
  56. @end