IOS Get network status

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>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.