IOS Get network status
Last Update:2016-11-09
Source: Internet
Author: User
<span id="Label3"></p><p><p>To get the status of iOS network, There are two ways I know NOW.</p></p><p><p>Method One: Reachability.</p></p><p><p>We believe that the most used method is to use reachability</p></p><p><p>This is the method used in the official demo of Apple.</p></p><p><p>1, First you need to download and import Reachability. This is the official Apple demo demo, Copy the reachability file into your Project. : https://developer.apple.com/library/ios/samplecode/Reachability/Introduction/Intro.html</p></p><p><p>2, Import Systemconfiguration.framework Frame.</p></p><p><p>3, Analysis reachability in the code meaning, you can see the following three network Status: no network, wifi and cellular Network.</p></p><pre><pre><span style="color: #008080">1</span> <span style="color: #0000ff">enum</span> <span style="color: #000000">: Nsinteger { </span><span style="color: #008080">2</span> <span style="color: #800080">0</span>,<span style="color: #008000">//</span> <span style="color: #008000">No network </span> <span style="color: #008080">3</span> reachableviawifi,<span style="color: #008000">//</span> <span style="color: #008000">currently using WiFi network </span> <span style="color: #008080">4</span> Reachableviawwan<span style="color: #008000">//</span> <span style="color: #008000"> Used cellular network </span> <span style="color: #008080">5</span> } networkstatus; </pre></pre><p><p></p></p><p><p>4. Get the network status code</p></p><p><p>It is worth mentioning that hostname changed to "www.baidu.com" or other Chinese websites often get the network status error, not get the correct network Status. So it's best to use Apple's website "www.apple.com"</p></p><pre><span style="color: #008080"><span style="color: #008080">1</span></span> <span style="color: #0000ff"><span style="color: #0000ff">#pragma</span></span>Mark-get Network Status<span style="color: #008080"><span style="color: #008080">2</span></span>+ (nsstring *<span style="color: #000000"><span style="color: #000000">) Internetstatus {</span></span><span style="color: #008080"><span style="color: #008080">3</span></span> <span style="color: #008080"><span style="color: #008080">4</span></span>reachability *reachability = [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: #008080"><span style="color: #008080">5</span></span>NetworkStatus Internetstatus =<span style="color: #000000"><span style="color: #000000">[reachability currentreachabilitystatus]; </span></span><span style="color: #008080"><span style="color: #008080">6</span></span>NSString *net =<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">WiFi</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: #008080"><span style="color: #008080">7</span></span> <span style="color: #0000ff"><span style="color: #0000ff">Switch</span></span><span style="color: #000000"><span style="color: #000000">(internetstatus) {</span></span><span style="color: #008080"><span style="color: #008080">8</span></span> <span style="color: #0000ff"><span style="color: #0000ff"></span> case</span><span style="color: #000000"><span style="color: #000000">Reachableviawifi:</span></span><span style="color: #008080"><span style="color: #008080">9</span></span>NET =<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">WiFi</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: #008080"><span style="color: #008080">Ten</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: #008080"><span style="color: #008080"></span> one</span> <span style="color: #008080"><span style="color: #008080"></span> a</span> <span style="color: #0000ff"><span style="color: #0000ff"></span> case</span><span style="color: #000000"><span style="color: #000000">reachableviawwan:</span></span><span style="color: #008080"><span style="color: #008080"></span> -</span>NET =<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">Wwan</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: #008080"><span style="color: #008080"></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: #008080"><span style="color: #008080"></span> the</span> <span style="color: #008080"><span style="color: #008080"></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: #008080"><span style="color: #008080"></span> -</span>NET =<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">notreachable</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: #008080"><span style="color: #008080"></span> -</span> <span style="color: #008080"><span style="color: #008080"></span> +</span> <span style="color: #0000ff"><span style="color: #0000ff">default</span></span><span style="color: #000000"><span style="color: #000000">: </span></span><span style="color: #008080"><span style="color: #008080"></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: #008080"><span style="color: #008080"></span> +</span> <span style="color: #000000"><span style="color: #000000"> } </span></span><span style="color: #008080"><span style="color: #008080"></span> a</span> <span style="color: #008080"><span style="color: #008080"></span> at</span> <span style="color: #0000ff"><span style="color: #0000ff">return</span></span><span style="color: #000000"><span style="color: #000000">net; </span></span><span style="color: #008080"><span style="color: #008080"></span> -</span>}</pre><p><p></p></p><p><p>This method is currently the most common use, because it is the official Apple demo, so more Authoritative. however, The disadvantage of this method is that it is not known whether the mobile network used by the user is 2G, 3G or 4G.</p></p><p><p>This gives you a second way to get the state of the Network.</p></p><p><p></p></p><p><p>Method Two:</p></p><p><p>This method also obtains the User's network status by listening to the StatusBar status of the Phone. It can be appstore on the shelves through Apple's audit. The code is very small, easy to understand, the most important is to distinguish between 2G, 3G, 4G, LTE. Words don't say much, directly on the Code.</p></p><pre><span style="color: #008080"><span style="color: #008080">1</span></span>+ (nsstring *<span style="color: #000000"><span style="color: #000000">) Networkingstatesfromstatebar {</span></span><span style="color: #008080"><span style="color: #008080">2</span></span> <span style="color: #008000"><span style="color: #008000">//</span></span><span style="color: #008000">the <span style="color: #008000">status bar is controlled by the current app, which first gets the current app</span></span><span style="color: #008080"><span style="color: #008080">3</span></span>UIApplication *app =<span style="color: #000000"><span style="color: #000000">[uiapplication sharedapplication]; </span></span><span style="color: #008080"><span style="color: #008080">4</span></span> <span style="color: #008080"><span style="color: #008080">5</span></span>Nsarray *children = [[[app valueforkeypath:<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">StatusBar</span></span><span style="color: #800000"><span style="color: #800000">"</span></span>] Valueforkeypath:<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">Foregroundview</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #000000"><span style="color: #000000">] subviews]; </span></span><span style="color: #008080"><span style="color: #008080">6</span></span> <span style="color: #008080"><span style="color: #008080">7</span></span> <span style="color: #0000ff"><span style="color: #0000ff">int</span></span>Type =<span style="color: #800080"><span style="color: #800080">0</span></span><span style="color: #000000"><span style="color: #000000">; </span></span><span style="color: #008080"><span style="color: #008080">8</span></span> <span style="color: #0000ff"><span style="color: #0000ff"></span> for</span>(<span style="color: #0000ff"><span style="color: #0000ff">ID</span></span>Child<span style="color: #0000ff"><span style="color: #0000ff">inch</span></span><span style="color: #000000"><span style="color: #000000">Children) { </span></span><span style="color: #008080"><span style="color: #008080">9</span></span> <span style="color: #0000ff"><span style="color: #0000ff">if</span></span>([child iskindofclass:[nsclassfromstring (<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">Uistatusbardatanetworkitemview</span></span><span style="color: #800000"><span style="color: #800000">"</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: #008080"><span style="color: #008080">Ten</span></span>Type = [[child Valueforkeypath:<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">Datanetworktype</span></span><span style="color: #800000"><span style="color: #800000">"</span></span><span style="color: #000000"><span style="color: #000000">] intvalue]; </span></span><span style="color: #008080"><span style="color: #008080"></span> one</span> <span style="color: #000000"><span style="color: #000000"> } </span></span><span style="color: #008080"><span style="color: #008080"></span> a</span> <span style="color: #000000"><span style="color: #000000"> } </span></span><span style="color: #008080"><span style="color: #008080"></span> -</span> <span style="color: #008080"><span style="color: #008080"></span> -</span>NSString *statestring =<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">WiFi</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: #008080"><span style="color: #008080"></span> the</span> <span style="color: #008080"><span style="color: #008080"></span> -</span> <span style="color: #0000ff"><span style="color: #0000ff">Switch</span></span><span style="color: #000000"><span style="color: #000000">(type) {</span></span><span style="color: #008080"><span style="color: #008080"></span> -</span> <span style="color: #0000ff"><span style="color: #0000ff"></span> case</span> <span style="color: #800080"><span style="color: #800080">0</span></span><span style="color: #000000"><span style="color: #000000">: </span></span><span style="color: #008080"><span style="color: #008080"></span> -</span>Statestring =<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">notreachable</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: #008080"><span style="color: #008080"></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: #008080"><span style="color: #008080"></span> -</span> <span style="color: #008080"><span style="color: #008080"></span> +</span> <span style="color: #0000ff"><span style="color: #0000ff"></span> case</span> <span style="color: #800080"><span style="color: #800080">1</span></span><span style="color: #000000"><span style="color: #000000">: </span></span><span style="color: #008080"><span style="color: #008080"></span> a</span>Statestring =<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">2G</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: #008080"><span style="color: #008080"></span> at</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: #008080"><span style="color: #008080"></span> -</span> <span style="color: #008080"><span style="color: #008080"></span> -</span> <span style="color: #0000ff"><span style="color: #0000ff"></span> case</span> <span style="color: #800080"><span style="color: #800080">2</span></span><span style="color: #000000"><span style="color: #000000">: </span></span><span style="color: #008080"><span style="color: #008080"></span> -</span>Statestring =<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">3G</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: #008080"><span style="color: #008080"></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: #008080"><span style="color: #008080"></span> -</span> <span style="color: #008080"><span style="color: #008080"></span> in</span> <span style="color: #0000ff"><span style="color: #0000ff"></span> case</span> <span style="color: #800080"><span style="color: #800080">3</span></span><span style="color: #000000"><span style="color: #000000">: </span></span><span style="color: #008080"><span style="color: #008080"></span> -</span>Statestring =<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">4G</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: #008080"><span style="color: #008080"></span> to</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: #008080"><span style="color: #008080"></span> +</span> <span style="color: #008080"><span style="color: #008080"></span> -</span> <span style="color: #0000ff"><span style="color: #0000ff"></span> case</span> <span style="color: #800080"><span style="color: #800080">4</span></span><span style="color: #000000"><span style="color: #000000">: </span></span><span style="color: #008080"><span style="color: #008080"></span> the</span>Statestring =<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">LTE</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: #008080"><span style="color: #008080"></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: #008080"><span style="color: #008080"></span> $</span> <span style="color: #008080"><span style="color: #008080">Panax Notoginseng</span></span> <span style="color: #0000ff"><span style="color: #0000ff"></span> case</span> <span style="color: #800080"><span style="color: #800080">5</span></span><span style="color: #000000"><span style="color: #000000">: </span></span><span style="color: #008080"><span style="color: #008080"></span> -</span>Statestring =<span style="color: #800000"><span style="color: #800000">@"</span></span><span style="color: #800000"><span style="color: #800000">WiFi</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: #008080"><span style="color: #008080"></span> the</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: #008080"><span style="color: #008080"></span> +</span> <span style="color: #008080"><span style="color: #008080"></span> a</span> <span style="color: #0000ff"><span style="color: #0000ff">default</span></span><span style="color: #000000"><span style="color: #000000">: </span></span><span style="color: #008080"><span style="color: #008080"></span> the</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: #008080"><span style="color: #008080"></span> +</span> <span style="color: #000000"><span style="color: #000000"> } </span></span><span style="color: #008080"><span style="color: #008080"></span> -</span> <span style="color: #008080"><span style="color: #008080"></span> $</span> <span style="color: #0000ff"><span style="color: #0000ff">return</span></span><span style="color: #000000"><span style="color: #000000">statestring; </span></span><span style="color: #008080"><span style="color: #008080"></span> $</span>}</pre><p><p></p></p><p><p>however, It is important to note that this method must be used to ensure that StatusBar is not Hidden. If your app hides statusbar, you won't be able to get the status of the network in this way.</p></p><p><p>IOS Get network status</p></p></span>