主要分为四步:
1. 定义指示网络状态的枚举变量
typedef enum
{
NoNetWork = 0,//无连接
ConnWiFi = 2, //使用3G/GPRS网络
Conn3G = 1//使用WiFi网络
} NetState;
2. 在.m 文件下声明方法
-(NetState) getNetState;
3. 在 .h文件中导入第三方库文件
#import "Reachability.h"
并实现方法-(NetState) getNetState;
-(NetState)getNetState
{
NSString *testPage = @"www.baidu.com";
Reachability *r = [Reachability reachabilityWithHostName:testPage];
switch ([r currentReachabilityStatus]) {
case NotReachable:
// 没有网络连接
return NoNetWork;
break;
case ReachableViaWWAN:
// 使用3G网络
return Conn3G;
break;
case ReachableViaWiFi:
// 使用WiFi网络
return ConnWiFi;
break;
}
}
4. 在 闪屏页面 .h 文件的 viewDidLoad 方法中加入如下所示代码
//查看网络状况
int stateNum = [self getNetState];
NSLog(@"%d",stateNum);
switch (stateNum) {
case 0:
alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"AppName", nil)
message:NSLocalizedString (@"NotReachable", nil)
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
myWPHImageViewBtn.selected = YES;//无网络连接时,使得页面(button)显示“点击刷新”字样(这里使用的是图片)
break;
case 1:
alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"AppName", nil)
message:NSLocalizedString (@"正在使用WiFi网络", nil)
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
//有网络连接时,使得页面加在风火轮及闪屏的主要元素
myWPHImageViewBtn.selected = NO;
[self performSelector:@selector(fadeScreen) withObject:nil afterDelay:6];
[self.view addSubview:myActivityIndicator];
[myActivityIndicator startAnimating];
break;
case 2:
alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"AppName", nil)
message:NSLocalizedString (@"正在使用3G/GPRS网络", nil)
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
//有网络连接时,使得页面加在风火轮及闪屏的主要元素
myWPHImageViewBtn.selected = NO;
[self performSelector:@selector(fadeScreen) withObject:nil afterDelay:6];
[self.view addSubview:myActivityIndicator];
[myActivityIndicator startAnimating];
break;
default:
break;
}
[[Reachability sharedReachability] setNetworkStatusNotificationsEnabled:YES];
// 设置网络状态变化时的通知函数
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:)
name:@"kNetworkReachabilityChangedNotification" object:nil];
[self updateStatus];
// 更新网络状态
- (void)updateStatus {
self.remoteHostStatus = [[Reachability sharedReachability] remoteHostStatus];
}
// 通知网络状态
- (void)reachabilityChanged:(NSNotification *)note {
[self updateStatus];
if (self.remoteHostStatus == NotReachable) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"AppName", nil)
message:NSLocalizedString (@"NotReachable", nil)
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
[alert release];
}
}