zoukankan      html  css  js  c++  java
  • IOS-网络(监听网络状态)

     1 //
     2 //  BWNetWorkTool.h
     3 //  IOS_0131_检测网络状态
     4 //
     5 //  Created by ma c on 16/1/31.
     6 //  Copyright © 2016年 博文科技. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 @interface BWNetWorkTool : NSObject
    12 ///是否是WiFi
    13 + (BOOL)isEnableWiFi;
    14 ///是否是3G
    15 + (BOOL)isEnable3G;
    16 
    17 @end
    18 
    19 //
    20 //  BWNetWorkTool.m
    21 //  IOS_0131_检测网络状态
    22 //
    23 //  Created by ma c on 16/1/31.
    24 //  Copyright © 2016年 博文科技. All rights reserved.
    25 //
    26 
    27 #import "BWNetWorkTool.h"
    28 #import "Reachability.h"
    29 
    30 @implementation BWNetWorkTool
    31 
    32 //是否是WiFi
    33 + (BOOL)isEnableWiFi
    34 {
    35     return [[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] !=NotReachable;
    36 }
    37 //是否是3G
    38 + (BOOL)isEnable3G
    39 {
    40     return [[Reachability reachabilityForInternetConnection] currentReachabilityStatus] !=NotReachable;
    41 }
    42 
    43 
    44 @end
      1 //
      2 //  ViewController.m
      3 //  IOS_0131_检测网络状态
      4 //
      5 //  Created by ma c on 16/1/31.
      6 //  Copyright © 2016年 博文科技. All rights reserved.
      7 //
      8 
      9 #import "ViewController.h"
     10 #import "Reachability.h"
     11 #import "BWNetWorkTool.h"
     12 
     13 @interface ViewController ()
     14 
     15 @property (nonatomic, strong) Reachability *reachability;
     16 
     17 @end
     18 
     19 @implementation ViewController
     20 /*
     21  检测网络状态
     22  1.在网络应用中,需要对用户设备的网络状态进行实时监控,目的:
     23    a.让用户了解自己的网络状态,防止一些误会(怪应用无能)
     24    b.根据用户的网络状态进行智能处理,节省用户流量,提高用户体验
     25      WIFI/3G/4G网络:自动下载高清图片
     26             低速网络:只能下载缩略图
     27             没有网络:智能显示离线的缓存数据
     28    c.苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态
     29      https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip
     30  
     31  2.Reachability的使用步骤
     32  1>添加框架SystemConfiguration.framework
     33  2>添加源代码
     34  3>包含头文件 - #import "Reachability.h"
     35  
     36  3.常见用法
     37  1>是否是WiFi
     38  + (BOOL)isEnableWiFi
     39  {
     40  return [[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] !=NotReachable;
     41  }
     42  2>是否是3G
     43  + (BOOL)isEnable3G
     44  {
     45  return [[Reachability reachabilityForInternetConnection] currentReachabilityStatus] !=NotReachable;
     46  }
     47  */
     48 
     49 - (void)viewDidLoad {
     50     [super viewDidLoad];
     51     
     52     //监听网络状态发生改变通知
     53     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
     54     
     55     //获得Reachability对象
     56     self.reachability = [Reachability reachabilityForInternetConnection];
     57     
     58     //开始监控
     59     [self.reachability startNotifier];
     60     
     61 //    //获取Reachability对象
     62 //    Reachability *wifi = [Reachability reachabilityForLocalWiFi];
     63 //    //获取Reachability对象的当前网络状态
     64 //    NetworkStatus wifiStatus = wifi.currentReachabilityStatus;
     65 //    
     66 //    if (wifiStatus !=NotReachable) {
     67 //        NSLog(@"wifi");
     68 //    }
     69     
     70 }
     71 
     72 - (void)networkStateChange
     73 {
     74     NSLog(@"网络状态改变了");
     75     [self changeNetworkState];
     76 }
     77 
     78 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
     79 {
     80     [self changeNetworkState];
     81 }
     82 
     83 - (void)changeNetworkState
     84 {
     85     if ([BWNetWorkTool isEnableWiFi]) {
     86         NSLog(@"WiFi环境");
     87     }else if ([BWNetWorkTool isEnable3G]){
     88         NSLog(@"手机自带网络");
     89     }else{
     90         NSLog(@"没有网络");
     91     }
     92 }
     93 
     94 - (void)dealloc
     95 {
     96     [self.reachability stopNotifier];
     97     [[NSNotificationCenter defaultCenter] removeObserver:self];
     98 }
     99 
    100 @end
  • 相关阅读:
    网络流24题
    Songwriter CF1252-E(贪心)
    Card Collector AtCoder
    Game on a Tree Gym
    图书管理系统五
    bfs+状态压缩dp
    最短路径(邻接矩阵)
    求小于等于k长度的最大区间和
    链表实现队列C语言写法
    图书管理系统四
  • 原文地址:https://www.cnblogs.com/oc-bowen/p/5173792.html
Copyright © 2011-2022 走看看