Няма описание

FKReachabilityUtil.m 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. //
  2. // FKReachabilityUtil.m
  3. // FirstLink
  4. //
  5. // Created by ascii on 15/9/7.
  6. // Copyright (c) 2015年 FirstLink. All rights reserved.
  7. //
  8. #import "FKReachabilityUtil.h"
  9. #import "FKWebviewUtil.h"
  10. @interface FKReachabilityUtil ()
  11. @property (nonatomic, assign) BOOL isReachable;
  12. @property (nonatomic, strong) NSString *network;
  13. @end
  14. @implementation FKReachabilityUtil
  15. + (FKReachabilityUtil *)sharedInstance {
  16. static FKReachabilityUtil *sharedFKReachabilityUtilInstance = nil;
  17. static dispatch_once_t once_token;
  18. dispatch_once(&once_token, ^{
  19. sharedFKReachabilityUtilInstance = [[self alloc] init];
  20. });
  21. return sharedFKReachabilityUtilInstance;
  22. }
  23. - (instancetype)init {
  24. self = [super init];
  25. if (self) {
  26. _isReachable = NO;
  27. }
  28. return self;
  29. }
  30. - (BOOL)isReachable {
  31. return _isReachable;
  32. }
  33. - (NSString *)networkType {
  34. if (!self.network) {
  35. return @"";
  36. }
  37. return self.network;
  38. }
  39. - (NSString *)networkType4UA {
  40. if ([self.networkType isEqualToString:@"wifi"]) {
  41. return @"WIFI";
  42. } else if ([self.networkType isEqualToString:@"wwan"]) {
  43. return @"4G";
  44. }
  45. return @"";
  46. }
  47. - (BOOL)isConnectWithWifi {
  48. if ([self.network isEqualToString:@"wifi"]) {
  49. return YES;
  50. }
  51. return NO;
  52. }
  53. - (void)configReachability {
  54. Reachability* reach = [Reachability reachabilityWithHostname:@"api.fine3q.com"];
  55. reach.reachableOnWWAN = YES;
  56. [[NSNotificationCenter defaultCenter] addObserver:self
  57. selector:@selector(reachabilityChanged:)
  58. name:kReachabilityChangedNotification
  59. object:nil];
  60. [reach startNotifier];
  61. }
  62. - (void)reachabilityChanged:(NSNotification *)notification {
  63. id obj = notification.object;
  64. if ([obj isKindOfClass:[Reachability class]]) {
  65. NetworkStatus internetStatus = [(Reachability*)obj currentReachabilityStatus];
  66. switch (internetStatus)
  67. {
  68. case NotReachable: {
  69. // NSLog(@"The internet is down.");
  70. self.isReachable = FALSE;
  71. self.network = @"notreachable";
  72. break;
  73. }
  74. case ReachableViaWiFi: {
  75. // NSLog(@"The internet is working via WIFI");
  76. self.isReachable = TRUE;
  77. self.network = @"wifi";
  78. break;
  79. }
  80. case ReachableViaWWAN: {
  81. // NSLog(@"The internet is working via WWAN!");
  82. self.isReachable = TRUE;
  83. self.network = @"wwan";
  84. break;
  85. }
  86. default: {
  87. // NSLog(@"The internet is working via mobile SIM!");
  88. self.isReachable = FALSE;
  89. self.network = @"notreachable";
  90. break;
  91. }
  92. }
  93. }
  94. [FKWebviewUtil configUserAgent];
  95. }
  96. @end