iOS Network detection
Last Update:2015-04-28
Source: Internet
Author: User
<span id="Label3"></p><p><p>Download the sample from the Apple website before use: click here to download</p></p><p><p></p></p><p><p>3 network states are defined in Reachability:</p></p><pre><pre><span style="color: #0000ff;">enum</span> <span style="color: #000000;">: Nsinteger { </span><span style="color: #800080;">0</span><span style="color: #000000;">,//no network reachableviawifi,//wifi reachableviawwan//3g} networkstatus;</span></pre></pre><p><p>For example, to detect the continuation status of a particular site, you can use the following code:</p></p><pre>reachability *r = [reachability reachabilitywithhostname:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">www.apple.com</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">]; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Switch</span></span><span style="color: #000000;"><span style="color: #000000;">([r currentreachabilitystatus]) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">notreachable:</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">No network connection</span></span>NSLog (<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">No network connection</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">Reachableviawwan:nslog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">using 3g networks</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">using 3G Networks</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">Reachableviawifi:nslog (</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Use WiFi network</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Use WiFi network</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">; }</span></span></pre><p><p>To detect the current network environment:</p></p><pre><pre><span style="color: #008000;">//</span> <span style="color: #008000;">whether WiFi</span>+<span style="color: #000000;"> (BOOL) isenablewifi { </span><span style="color: #0000ff;">return</span> ([[reachability reachabilityforlocalwifi] currentreachabilitystatus]! =<span style="color: #000000;"> notreachable);}</span> <span style="color: #008000;">//</span> <span style="color: #008000;">whether 3G</span>+<span style="color: #000000;"> (BOOL) isenable3g { </span><span style="color: #0000ff;">return</span> ([[reachability reachabilityforinternetconnection ] currentreachabilitystatus]! =<span style="color: #000000;"> notreachable);}</span></pre></pre><p><p>Real-time notification of connection Status:</p></p><pre><pre><span style="color: #0000ff;">#import</span> <UIKit/UIKit.h><span style="color: #0000ff;">#import</span><span style="color: #800000;">"</span><span style="color: #800000;">Reachability.h</span><span style="color: #800000;">"</span><span style="color: #0000ff;">@interface </span>appdelegate:uiresponder <UIApplicationDelegate><span style="color: #000000;"> { reachability </span>*<span style="color: #000000;"></span>* <span style="color: #000000;">window;</span> <span style="color: #0000ff;">@end</span></pre></pre><pre>- (<span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>) reachabilitychanged: (nsnotification *<span style="color: #000000;"><span style="color: #000000;">) Note {</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Connection Changes</span></span>reachability* Curreach = [note<span style="color: #0000ff;"><span style="color: #0000ff;">Object</span></span><span style="color: #000000;"><span style="color: #000000;">]; Nsparameterassert ([curreach iskindofclass: [reachability</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">]]); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">dealing with changes in connection conditions</span></span>NetworkStatus status =<span style="color: #000000;"><span style="color: #000000;">[curreach currentreachabilitystatus]; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(status = =<span style="color: #000000;"><span style="color: #000000;">Notreachable) {uialertview</span></span>*alert = [[uialertview alloc] initwithtitle:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Tips</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">message:</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">your network is disconnected</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Delegate</span></span><span style="color: #000000;"><span style="color: #000000;">: Nil cancelbuttontitle:</span></span><span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">Determine</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span><span style="color: #000000;"><span style="color: #000000;">otherbuttontitles:nil]; [alert show]; }}</span></span>-(BOOL) application: (uiapplication *) application didfinishlaunchingwithoptions: (nsdictionary *<span style="color: #000000;"><span style="color: #000000;">) launchoptions {</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">monitoring network conditions</span></span><span style="color: #000000;"><span style="color: #000000;">[[nsnotificationcenter defaultcenter] addobserver:self selector: @selec Tor (reachabilitychanged:) Name:kreachabilitychangednotification </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Object</span></span><span style="color: #000000;"><span style="color: #000000;">: nil]; Hostreach</span></span>= [reachability Reachabilitywithhostname:<span style="color: #800000;"><span style="color: #800000;">@"</span></span><span style="color: #800000;"><span style="color: #800000;">www.google.com</span></span><span style="color: #800000;"><span style="color: #800000;">"</span></span>];<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">can be initialized in many forms</span></span>[hostreach startnotifier];<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">start listening, A run loop is started</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;"><span style="color: #000000;">YES;}</span></span></pre><p><p></p></p><p><p>iOS Network detection</p></p></span>