使用之前请从Apple网站下载示例:点此下载
然后将Reachability.h 和 Reachability.m 加到自己的项目中,并引用 SystemConfiguration.framework,就可以使用了。
Reachability 中定义了3种网络状态:
// the network state of the device for Reachability 1.5. typedef enum { NotReachable = 0, //无连接 ReachableViaCarrierDataNetwork, //使用3G/GPRS网络 ReachableViaWiFiNetwork //使用WiFi网络 } NetworkStatus; // the network state of the device for Reachability 2.0. typedef enum { NotReachable = 0, //无连接 ReachableViaWiFi, //使用3G/GPRS网络 ReachableViaWWAN //使用WiFi网络 } NetworkStatus;
比如检测某一特定站点的接续状况,可以使用下面的代码:
Reachability *r = [Reachability reachabilityWithHostName:@“www.apple.com”]; switch ([r currentReachabilityStatus]) { case NotReachable: // 没有网络连接 break; case ReachableViaWWAN: // 使用3G网络 break; case ReachableViaWiFi: // 使用WiFi网络 break; }
检测当前网络环境:
// 是否wifi + (BOOL) IsEnableWIFI { return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable); } // 是否3G + (BOOL) IsEnable3G { return ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable); }
连接状态实时通知
网络连接状态的实时检查,通知在网络应用中也是十分必要的。接续状态发生变化时,需要及时地通知用户。由于Reachability1.5版与2.0版有一些变化,这里分开来说明使用方法。
Reachability 1.5
// My.AppDelegate.h #import "Reachability.h" @interface MyAppDelegate : NSObject <UIApplicationDelegate> { NetworkStatus remoteHostStatus; } @property NetworkStatus remoteHostStatus; @end // My.AppDelegate.m #import "MyAppDelegate.h" @implementation MyAppDelegate @synthesize remoteHostStatus; // 更新网络状态 - (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]; } } // 程序启动器,启动网络监视 - (void)applicationDidFinishLaunching:(UIApplication *)application { // 设置网络检测的站点 [[Reachability sharedReachability] setHostName:@"www.apple.com"]; [[Reachability sharedReachability] setNetworkStatusNotificationsEnabled:YES]; // 设置网络状态变化时的通知函数 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:@"kNetworkReachabilityChangedNotification" object:nil]; [self updateStatus]; } - (void)dealloc { // 删除通知对象 [[NSNotificationCenter defaultCenter] removeObserver:self]; [window release]; [super dealloc]; }
Reachability 2.0
// MyAppDelegate.h @class Reachability; @interface MyAppDelegate : NSObject <UIApplicationDelegate> { Reachability *hostReach; } @end // MyAppDelegate.m - (void)reachabilityChanged:(NSNotification *)note { Reachability* curReach = [note object]; NSParameterAssert([curReach isKindOfClass: [Reachability class]]); NetworkStatus status = [curReach currentReachabilityStatus]; if (status == NotReachable) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"AppName"" message:@"NotReachable" delegate:nil cancelButtonTitle:@"YES" otherButtonTitles:nil]; [alert show]; [alert release]; } } - (void)applicationDidFinishLaunching:(UIApplication *)application { // ... // 监测网络情况 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; hostReach = [[Reachability reachabilityWithHostName:@"www.google.com"] retain]; [hostReach startNotifer]; // ... }
相关推荐
检测APP是在WiFi、2G、3G、4G状态,根据注册通知实时检测。
网络连接状态检测对于我们的iOS开发来说是一个非常通用的需求。下面这篇文章主要就给大家介绍了关于利用iOS实现实时检测网络状态的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的...
Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法。要在应用程序程序中使用Reachability,首先要完成如下两部: 1.1. 添加源文件: 1.2.添加framework: Reachability.h中定义了三种网络...
PBJNetworkObserver是一个 iOS 组件,用于检测网络可达性状态和连接类型的变化。 例如,它可以确定何时通过无线广域网 (WWAN) 接口(例如 3G 或 LTE)路由 IP。 移动设备经常在由各种网络接口组成的连接挑战环境中...
知道当前网络状态的最简单方法是什么? CHTReachability尝试为您检测REAL网络的可达性。 功能易于使用。 高度可定制的。 先决条件ARC iOS 8+工作原理它使用Apple的Reachability和SimplePing示例代码来完成实际工作。...
IOS 网络编程 ReachAbility头文件和源文件,用于判定网络的连接情况
查看网络连接 = 可查看本机的TCP和UDP连接,分析灰鸽子用得着 电脑时间效准 = 校准本机上的时间 局域网共享设置 = 方便的设置局域网共享 创建ADSL宽带 = 一键快速创建拨号连接的快捷方式到桌面 专用链转换 = HTTP、...
网络连接状态检测对于我们的iOS app开发来说是一个非常通用的需求。为了更好的用户体验,我们会在无网络时展现本地或者缓存的内容,并对用户进行合适的提示。
通过功能线去确定网络设备的运行状态和网络性能 4.Manage operating system image files to maintain an accessible operating system file and according to best practices, given a network topology 管理...
通过功能线去确定网络设备的运行状态和网络性能 4.Manage operating system image files to maintain an accessible operating system file and according to best practices, given a network topology 管理...
无需订购可靠排序(仅最后一个数据包可靠)有序但不能防止复制没有顺序和可靠性的简单UDP数据包快速数据包串行器(使用手册)自动小数据包合并自动分割可靠的数据包自动MTU检测可选的CRC32C校验和UDP NAT打孔NTP时间...
软件特点: ...8、人性化的远程文件管理功能和细节处理(网络状态检测、屏幕截图Banner等),带给你不一样的视觉和操作体验。 支持系统和环境: WinXp-Win11所有操作系统,互联网和局域网均可部署。
答:iOS设备和Mac必须在同一网络上或通过USB连接才能使BatteryNotifier正常工作。 首次插入iOS设备时,请信任您的Mac。 请确保也尝试通过iTunes为该设备启用Wifi同步。 有时可能只是故障,而您
源码FLEX,FLEX(Flipboard Explorer)是Flipboard官方发布的一组专门用于iOS开发的应用内调试工具,其主要开发者为Flipboard公司旗下的iOS工程师Ryan Olson。和许多调试工具不同的是,FLEX不仅能在模拟器和物理设备...
网络检测(是否连接网络);可构建离线安装包。update 2018-04-25:由于现在 RN 及其相关插件更新频繁,如果出于学习的目的,安装依赖时最好按照 package.json 中指定的 package 版本进行安装,熟悉 RN 开发流程后再...
4.5.9 CODEC和语音激活检测VAD 102 4.5.10 帧中继上的VoIP QoS 102 4.5.11 VoIP故障排除 105 本章总结 124 常见问题解答 125 第5章 H.323配置: 网关和GATEKEEPER 126 5.1 简介 126 5.2 H.323版本1与版本2 126 5.2.1 ...
Webview WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页 Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与...