有2種方式,可以在AppDelegate直接寫:
第一種AFNetworkReachabilityManager:
AFNetworkReachabilityManager *manage = [AFNetworkReachabilityManager >sharedManager];
[manage setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus >status) {
switch (status) {
case AFNetworkReachabilityStatusUnknown: // 未知網(wǎng)絡(luò)
{
NSLog(@"未知網(wǎng)絡(luò)");
}
break;
case AFNetworkReachabilityStatusNotReachable: // 沒有網(wǎng)絡(luò)(斷網(wǎng))
{
NSLog(@"沒有網(wǎng)絡(luò)(斷網(wǎng))");
[MBProgressHUD showError:@"網(wǎng)絡(luò)異常,請檢查網(wǎng)絡(luò)設(shè)置信不!"];
}
break;
case AFNetworkReachabilityStatusReachableViaWWAN: // 手機自帶網(wǎng)絡(luò)
{
NSLog(@"手機自帶網(wǎng)絡(luò)");
}
break;
case AFNetworkReachabilityStatusReachableViaWiFi: // WIFI
{
NSLog(@"WIFI");
}
break;
}
}];
// 開始監(jiān)控
[manage startMonitoring];
第二種使用Reachability:
首先github下載Reachability文件
添加源代碼
代碼示例:
導入頭文件
import "Reachability.h"
@interface ViewController ( )
@property (nonatomic, strong) Reachability *conn;
@end@implementation ViewController
(void)viewDidLoad
{
[super viewDidLoad];[[NSNotificationCenter defaultCenter] addObserver:self >selector:@selector(networkStateChange) >name:kReachabilityChangedNotification object:nil];
self.conn = [Reachability reachabilityForInternetConnection];
[self.conn startNotifier];
}(void)dealloc
{
[self.conn stopNotifier];
[[NSNotificationCenter defaultCenter] removeObserver:self];
}(void)networkStateChange
{
[self checkNetworkState];
}(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{}
- (void)checkNetworkState
{
// 1.檢測wifi狀態(tài)
Reachability *wifi = [Reachability reachabilityForLocalWiFi];
// 2.檢測手機是否能上網(wǎng)絡(luò)(WIFI\3G\2.5G)
Reachability *conn = [Reachability reachabilityForInternetConnection];
// 3.判斷網(wǎng)絡(luò)狀態(tài)
if ([wifi currentReachabilityStatus] != NotReachable) { // 有wifi
NSLog(@"有wifi");} else if ([conn currentReachabilityStatus] != NotReachable) { // 沒有使用wifi, 使用手機自帶網(wǎng)絡(luò)進行上網(wǎng)
NSLog(@"使用手機自帶網(wǎng)絡(luò)進行上網(wǎng)");} else { // 沒有網(wǎng)絡(luò)
NSLog(@"沒有網(wǎng)絡(luò)");
}
}
@end
// 用WIFI
// [wifi currentReachabilityStatus] != NotReachable
// [conn currentReachabilityStatus] != NotReachable
// 沒有用WIFI, 只用了手機網(wǎng)絡(luò)
// [wifi currentReachabilityStatus] == NotReachable
// [conn currentReachabilityStatus] != NotReachable
// 沒有網(wǎng)絡(luò)
// [wifi currentReachabilityStatus] == NotReachable
// [conn currentReachabilityStatus] == NotReachable