Skip to content

Commit a5155dc

Browse files
author
chenbing
committed
增加通过AFN实现的网络监测
1 parent 8129ecc commit a5155dc

19 files changed

+6930
-0
lines changed

AYYUtils/AYYUtils.xcodeproj/project.pbxproj

+66
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
180BD35F1EEA4DDD00F5E99A /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 180BD3511EEA4DDD00F5E99A /* AFHTTPSessionManager.m */; };
11+
180BD3601EEA4DDD00F5E99A /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 180BD3531EEA4DDD00F5E99A /* AFNetworkActivityIndicatorManager.m */; };
12+
180BD3611EEA4DDD00F5E99A /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 180BD3561EEA4DDD00F5E99A /* AFNetworkReachabilityManager.m */; };
13+
180BD3621EEA4DDD00F5E99A /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 180BD3581EEA4DDD00F5E99A /* AFSecurityPolicy.m */; };
14+
180BD3631EEA4DDD00F5E99A /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 180BD35A1EEA4DDD00F5E99A /* AFURLRequestSerialization.m */; };
15+
180BD3641EEA4DDD00F5E99A /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 180BD35C1EEA4DDD00F5E99A /* AFURLResponseSerialization.m */; };
16+
180BD3651EEA4DDD00F5E99A /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 180BD35E1EEA4DDD00F5E99A /* AFURLSessionManager.m */; };
17+
180BD3681EEA4DF000F5E99A /* AYYNetworkCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 180BD3671EEA4DF000F5E99A /* AYYNetworkCenter.m */; };
1018
3414EF831E1653CE008BC725 /* AYYFPSIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 3414EF821E1653CE008BC725 /* AYYFPSIndicator.m */; };
1119
342091F21DF80C65001AA421 /* UIView+ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 342091F11DF80C65001AA421 /* UIView+ViewController.m */; };
1220
342C50FB1E03998100DD5E05 /* NSString+Size.m in Sources */ = {isa = PBXBuildFile; fileRef = 342C50FA1E03998100DD5E05 /* NSString+Size.m */; };
@@ -21,6 +29,23 @@
2129
/* End PBXBuildFile section */
2230

2331
/* Begin PBXFileReference section */
32+
180BD3501EEA4DDD00F5E99A /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFHTTPSessionManager.h; sourceTree = "<group>"; };
33+
180BD3511EEA4DDD00F5E99A /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFHTTPSessionManager.m; sourceTree = "<group>"; };
34+
180BD3521EEA4DDD00F5E99A /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFNetworkActivityIndicatorManager.h; sourceTree = "<group>"; };
35+
180BD3531EEA4DDD00F5E99A /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFNetworkActivityIndicatorManager.m; sourceTree = "<group>"; };
36+
180BD3541EEA4DDD00F5E99A /* AFNetworking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFNetworking.h; sourceTree = "<group>"; };
37+
180BD3551EEA4DDD00F5E99A /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFNetworkReachabilityManager.h; sourceTree = "<group>"; };
38+
180BD3561EEA4DDD00F5E99A /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFNetworkReachabilityManager.m; sourceTree = "<group>"; };
39+
180BD3571EEA4DDD00F5E99A /* AFSecurityPolicy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFSecurityPolicy.h; sourceTree = "<group>"; };
40+
180BD3581EEA4DDD00F5E99A /* AFSecurityPolicy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFSecurityPolicy.m; sourceTree = "<group>"; };
41+
180BD3591EEA4DDD00F5E99A /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFURLRequestSerialization.h; sourceTree = "<group>"; };
42+
180BD35A1EEA4DDD00F5E99A /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFURLRequestSerialization.m; sourceTree = "<group>"; };
43+
180BD35B1EEA4DDD00F5E99A /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFURLResponseSerialization.h; sourceTree = "<group>"; };
44+
180BD35C1EEA4DDD00F5E99A /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFURLResponseSerialization.m; sourceTree = "<group>"; };
45+
180BD35D1EEA4DDD00F5E99A /* AFURLSessionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFURLSessionManager.h; sourceTree = "<group>"; };
46+
180BD35E1EEA4DDD00F5E99A /* AFURLSessionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFURLSessionManager.m; sourceTree = "<group>"; };
47+
180BD3661EEA4DF000F5E99A /* AYYNetworkCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AYYNetworkCenter.h; sourceTree = "<group>"; };
48+
180BD3671EEA4DF000F5E99A /* AYYNetworkCenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AYYNetworkCenter.m; sourceTree = "<group>"; };
2449
3414EF811E1653CE008BC725 /* AYYFPSIndicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AYYFPSIndicator.h; sourceTree = "<group>"; };
2550
3414EF821E1653CE008BC725 /* AYYFPSIndicator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AYYFPSIndicator.m; sourceTree = "<group>"; };
2651
342091F01DF80C65001AA421 /* UIView+ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+ViewController.h"; sourceTree = "<group>"; };
@@ -55,6 +80,36 @@
5580
/* End PBXFrameworksBuildPhase section */
5681

5782
/* Begin PBXGroup section */
83+
180BD34E1EEA4DDD00F5E99A /* ThirdPartLib */ = {
84+
isa = PBXGroup;
85+
children = (
86+
180BD34F1EEA4DDD00F5E99A /* AFNetworking-3.1.0 */,
87+
);
88+
path = ThirdPartLib;
89+
sourceTree = "<group>";
90+
};
91+
180BD34F1EEA4DDD00F5E99A /* AFNetworking-3.1.0 */ = {
92+
isa = PBXGroup;
93+
children = (
94+
180BD3501EEA4DDD00F5E99A /* AFHTTPSessionManager.h */,
95+
180BD3511EEA4DDD00F5E99A /* AFHTTPSessionManager.m */,
96+
180BD3521EEA4DDD00F5E99A /* AFNetworkActivityIndicatorManager.h */,
97+
180BD3531EEA4DDD00F5E99A /* AFNetworkActivityIndicatorManager.m */,
98+
180BD3541EEA4DDD00F5E99A /* AFNetworking.h */,
99+
180BD3551EEA4DDD00F5E99A /* AFNetworkReachabilityManager.h */,
100+
180BD3561EEA4DDD00F5E99A /* AFNetworkReachabilityManager.m */,
101+
180BD3571EEA4DDD00F5E99A /* AFSecurityPolicy.h */,
102+
180BD3581EEA4DDD00F5E99A /* AFSecurityPolicy.m */,
103+
180BD3591EEA4DDD00F5E99A /* AFURLRequestSerialization.h */,
104+
180BD35A1EEA4DDD00F5E99A /* AFURLRequestSerialization.m */,
105+
180BD35B1EEA4DDD00F5E99A /* AFURLResponseSerialization.h */,
106+
180BD35C1EEA4DDD00F5E99A /* AFURLResponseSerialization.m */,
107+
180BD35D1EEA4DDD00F5E99A /* AFURLSessionManager.h */,
108+
180BD35E1EEA4DDD00F5E99A /* AFURLSessionManager.m */,
109+
);
110+
path = "AFNetworking-3.1.0";
111+
sourceTree = "<group>";
112+
};
58113
349B6F6B1DDD7FDC004B1475 = {
59114
isa = PBXGroup;
60115
children = (
@@ -74,6 +129,7 @@
74129
349B6F761DDD7FDD004B1475 /* AYYUtils */ = {
75130
isa = PBXGroup;
76131
children = (
132+
180BD34E1EEA4DDD00F5E99A /* ThirdPartLib */,
77133
349B6F8E1DDD8066004B1475 /* AYYUtils */,
78134
349B6F771DDD7FDD004B1475 /* Supporting Files */,
79135
);
@@ -99,6 +155,8 @@
99155
349B6F8E1DDD8066004B1475 /* AYYUtils */ = {
100156
isa = PBXGroup;
101157
children = (
158+
180BD3661EEA4DF000F5E99A /* AYYNetworkCenter.h */,
159+
180BD3671EEA4DF000F5E99A /* AYYNetworkCenter.m */,
102160
3481269C1E0D3444002AD2D7 /* CrossDevicesLayout.h */,
103161
342C50F91E03998100DD5E05 /* NSString+Size.h */,
104162
342C50FA1E03998100DD5E05 /* NSString+Size.m */,
@@ -185,13 +243,21 @@
185243
isa = PBXSourcesBuildPhase;
186244
buildActionMask = 2147483647;
187245
files = (
246+
180BD3651EEA4DDD00F5E99A /* AFURLSessionManager.m in Sources */,
188247
349B6F7F1DDD7FDD004B1475 /* ViewController.m in Sources */,
189248
349B6F7C1DDD7FDD004B1475 /* AppDelegate.m in Sources */,
190249
3455CA9C1DEEB99800D77786 /* NSDictionary+NullExamine.m in Sources */,
250+
180BD35F1EEA4DDD00F5E99A /* AFHTTPSessionManager.m in Sources */,
251+
180BD3621EEA4DDD00F5E99A /* AFSecurityPolicy.m in Sources */,
252+
180BD3601EEA4DDD00F5E99A /* AFNetworkActivityIndicatorManager.m in Sources */,
253+
180BD3631EEA4DDD00F5E99A /* AFURLRequestSerialization.m in Sources */,
191254
342091F21DF80C65001AA421 /* UIView+ViewController.m in Sources */,
192255
342C50FB1E03998100DD5E05 /* NSString+Size.m in Sources */,
193256
3414EF831E1653CE008BC725 /* AYYFPSIndicator.m in Sources */,
257+
180BD3681EEA4DF000F5E99A /* AYYNetworkCenter.m in Sources */,
194258
349B6F791DDD7FDD004B1475 /* main.m in Sources */,
259+
180BD3611EEA4DDD00F5E99A /* AFNetworkReachabilityManager.m in Sources */,
260+
180BD3641EEA4DDD00F5E99A /* AFURLResponseSerialization.m in Sources */,
195261
349B6F911DDD808F004B1475 /* AYYAppRate.m in Sources */,
196262
);
197263
runOnlyForDeploymentPostprocessing = 0;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
//
2+
// AYYNetworkCenter.h
3+
// GW
4+
//
5+
// Created by 艾呦呦 on 2017/5/15.
6+
// Copyright © 2017年 apple. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
11+
typedef void (^AYYNetworkStatusChangeBlock)();
12+
typedef void (^AYYNetworkStatusChange2ReachableBlock)();
13+
14+
@interface AYYNetworkCenter : NSObject
15+
16+
+ (instancetype)defaultCenter;
17+
18+
/**
19+
Method to get current network reachablity status.
20+
21+
@return The network is reachable or not.
22+
*/
23+
+ (BOOL)isNetworkReachable;
24+
25+
/**
26+
* start monitoring network
27+
*/
28+
- (void)startMonitoring;
29+
30+
/**
31+
* 实时监测网络状态改变
32+
*/
33+
- (void)networkReachabilityStatusChanged2Reachable:(AYYNetworkStatusChangeBlock)networkStatusChange2ReachableBlock
34+
changed2NotReachable:(AYYNetworkStatusChangeBlock)networkStatusChange2NotReachableBlock;
35+
36+
37+
@end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
//
2+
// AYYNetworkCenter.m
3+
// GW
4+
//
5+
// Created by 艾呦呦 on 2017/5/15.
6+
// Copyright © 2017年 apple. All rights reserved.
7+
//
8+
9+
#import "AYYNetworkCenter.h"
10+
#import "AFNetworking.h"
11+
12+
@interface AYYNetworkCenter ()
13+
14+
@property (nonatomic, copy) AYYNetworkStatusChangeBlock networkStatusChange2ReachableBlock;
15+
@property (nonatomic, copy) AYYNetworkStatusChangeBlock networkStatusChange2NotReachableBlock;
16+
17+
@end
18+
19+
@implementation AYYNetworkCenter
20+
21+
+ (instancetype)center {
22+
return [[[self class] alloc] init];
23+
}
24+
25+
+ (instancetype)defaultCenter {
26+
static id sharedInstance = nil;
27+
static dispatch_once_t onceToken;
28+
dispatch_once(&onceToken, ^{
29+
sharedInstance = [self center];
30+
});
31+
return sharedInstance;
32+
}
33+
34+
/**
35+
Method to get current network reachablity status.
36+
37+
@return The network is reachable or not.
38+
*/
39+
+ (BOOL)isNetworkReachable {
40+
41+
return [AFNetworkReachabilityManager sharedManager].networkReachabilityStatus != 0;
42+
}
43+
44+
/**
45+
* start monitoring network
46+
*/
47+
- (void)startMonitoring {
48+
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
49+
}
50+
51+
/**
52+
* 实时监测网络状态改变
53+
*/
54+
- (void)networkReachabilityStatusChanged2Reachable:(AYYNetworkStatusChangeBlock)networkStatusChange2ReachableBlock
55+
changed2NotReachable:(AYYNetworkStatusChangeBlock)networkStatusChange2NotReachableBlock {
56+
self.networkStatusChange2ReachableBlock = networkStatusChange2ReachableBlock;
57+
self.networkStatusChange2NotReachableBlock = networkStatusChange2NotReachableBlock;
58+
__weak __typeof(self)weakSelf = self;
59+
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
60+
__strong __typeof(weakSelf)strongSelf = weakSelf;
61+
if (status != 0) {
62+
strongSelf.networkStatusChange2ReachableBlock();
63+
64+
} else {
65+
strongSelf.networkStatusChange2NotReachableBlock();
66+
}
67+
}];
68+
}
69+
70+
@end

0 commit comments

Comments
 (0)