首先去
https://developer.apple.com/library/ios/samplecode/Reachability/Listings/Reachability_Reachability_m.html 下載Reachability類。
然后將Reachability.h和Reachability.m拖進(jìn)你的工程瑞侮,然后添加SystemConfiguration.framework框架。
注:Reachability 2.x版本是不支持ARC的贮配,如果你用的是2.x的版本,請(qǐng)手動(dòng)禁用該類的ARC塞赂。TARGETS->Build Phases->Compile Sources雙擊Reachability.m泪勒,輸入框添加“-fno-objc-arc”。
然后判斷網(wǎng)絡(luò)狀態(tài)方法如下:
NSString *site = @"www.MyWeb.com";
Reachability *reach = [Reachability reachabilityWithHostName:site];
switch ([reach currentReachabilityStatus]) {
case NotReachable:
NSLog(@"不能訪問(wèn)%@", site);
break;
case ReachableViaWiFi:
NSLog(@"使用wifi訪問(wèn)%@", site);
break;
case ReachableViaWWAN:
NSLog(@"使用3G/4G訪問(wèn)%@", site);
break;
default:
break;
}
判斷有無(wú)網(wǎng)絡(luò)連接:
if ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable) {
[self showAlert:@"網(wǎng)絡(luò)可用"];
} else {
[self showAlert:@"網(wǎng)絡(luò)不可用"];
}
監(jiān)聽網(wǎng)絡(luò)狀態(tài)的方法宴猾,寫在AppDelegate類的application: didFinishLaunchingWithOptions:里面:
注冊(cè)通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
Reachability *reachability = [Reachability reachabilityWithHostName:@"www.baidu.com"];
[reachability startNotifier];
網(wǎng)絡(luò)狀態(tài)變化實(shí)現(xiàn)
/**
*此函數(shù)通過(guò)判斷聯(lián)網(wǎng)方式圆存,通知給用戶
*/
- (void)reachabilityChanged:(NSNotification *)notification {
Reachability *curReachability = [notification object];
NSParameterAssert([curReachability isKindOfClass:[Reachability class]]);
NetworkStatus curStatus = [curReachability currentReachabilityStatus];
switch (curStatus) {
case NotReachable:
NSLog(@"無(wú)網(wǎng)絡(luò)");
break;
case ReachableViaWiFi:
NSLog(@"使用wifi網(wǎng)絡(luò)");
break;
case ReachableViaWWAN:
NSLog(@"使用3G/4G網(wǎng)絡(luò)");
break;
default:
break;
}
}
最后新版本中reachabilityForLocalWiFi方法被移除了
Paste_Image.png