一 网络监听
    1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    2. {
    3. self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    4.  
    5. //开启网络状况的监听
    6. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
    7.  
    8. self.hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"] ;

    9. [self.hostReach startNotifier]; //开始监听,会启动一个run loop
    10.  
    11. self.window.rootViewController = self.tabBarController;

    12. [self.window makeKeyAndVisible];
    13. return YES;
    14. }
    15. //网络链接改变时会调用的方法
    16. -(void)reachabilityChanged:(NSNotification *)note
    17. {
    18. Reachability *currReach = [note object];
    19. NSParameterAssert([currReach isKindOfClass:[Reachability class]]);
    20.  
    21. //对连接改变做出响应处理动作
    22. NetworkStatus status = [currReach currentReachabilityStatus];
    23. //如果没有连接到网络就弹出提醒实况
    24. self.isReachable = YES;
    25. if(status == NotReachable)
    26. {
    27. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络连接异常" message:@"暂无法访问书城信息" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];
    28. [alert show];
    29. [alert release];
    30. self.isReachable = NO;
    31. }
    32. else
    33. {
    34. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"网络连接信息" message:@"网络连接正常" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];
    35. [alert show];
    36. [alert release];
    37. self.isReachable = YES;
    38. }
    39. }
    40.  
    41. //通过如上代码,在应用程序的任何一个界面都可以使用下面的单例来判断网络是否连接
    42.  
    43. AppDelegate *appDlg = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    44. if(appDlg.isReachable)
    45. {
    46. NSLog(@"网络已连接");//执行网络正常时的代码
    47. }
    48. else
    49. {
    50. NSLog(@"网络连接异常");//执行网络异常时的代码
    51. }
 
 
二、判断是否有网络
  1. -(BOOL)isExistenceNetwork
  2. {
  3. BOOL isExistenceNetwork;
  4. Reachability *r = [Reachability reachabilityWithHostName:@"http://www.baidu.com"];
  5. switch ([r currentReachabilityStatus]) {
  6. case NotReachable://没有网络。
  7. isExistenceNetwork=FALSE;
  8. break;
  9. case ReachableViaWWAN://没有3G信号。
  10. isExistenceNetwork=TRUE;
  11. break;
  12. case ReachableViaWiFi://没有wifi。
  13. isExistenceNetwork=TRUE;
  14. break;
  15. }
  16.  
  17. return isExistenceNetwork;
  18. }

iOS 网络监听、判断的更多相关文章

  1. iOS:Reachability网络监听

    iOS利用Reachability确认网络环境3G/WIFI 开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息.如果没有处理它们,是不会通过Apple的审查的,一般情况下,可以把网络监 ...

  2. iOS网络-06-监听Iphone的网络状态

    使用系统的方法来监听网络状态 系统的方法是通过通知机制来实现网络状态的监听 实现网络状态监听的步骤 定义Reachability类型的成员变量来保存网络的状态 @property (nonatomic ...

  3. 从零开始学 Web 之 HTML5(三)网络监听,全屏,文件读取,地理定位接口,应用程序缓存

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  4. H5C3--语义标签以及语义标签IE8兼容,表单元素新属性,度量器,自定义属性,dataList,网络监听,文件读取

    HTML5新增标签以及HTML5新增的api     1.H5并不是新的语言,而是html语言的第五次重大修改--版本     2.支持:所有的主流浏览器都支持h5.(chrome,firefox,s ...

  5. Android实现网络监听

    一.Android Wifi常用广播 网络开发中主体会使用到的action: ConnectivityManager.CONNECTIVITY_ACTION WifiManager.WIFI_STAT ...

  6. Android 手势水平监听判断

    package com.zihao.ui; import com.zihao.R; import android.os.Bundle; import android.app.Activity; imp ...

  7. WPF - 监听判断键盘组合键的按下

    对于键盘事件PreviewKeyDown.PreviewKeyUp.KeyDown.KeyUp,在其中检查当次事件是哪个按键触发的很简单,只需要判断KeyEventArgs类型的事件参数e的Key属性 ...

  8. java实现网络监听

    Java实现网络监听 import java.net.*; import java.io.*; public class tcpServer { public static void main(Str ...

  9. iOS 实时监听app的网络连接状态

    实际iOS开发中,在网络通信中我们大部分使用第三方(只谈短链),譬如 AFNetworking.ASIHttpRequest(这个停更了,想必现在没多少人用),swift的 Alamofire 等. ...

随机推荐

  1. Maven启动Java Web工程,8081和8086端口号被占用

    Maven启动Java Web工程, <!-- 配置tomcat插件 --> <build> <plugins> <plugin> <groupI ...

  2. Java提高十五:容器元素比较Comparable&Comparator深入分析

    我们经常用容器来存放元素,通常而言我们是不关系容器中的元素是否有序,但有些场景可能要求容器中的元素是有序的,这个时候用ArrayList  LinkedList  Hashtable HashMap ...

  3. phpcms v9 前台getshell脚本

    phpcms v9 前台getshell脚本 用法:python phpcmsv9getshell.py http://baidu.com # -*- coding:utf-8 -*- ''' --- ...

  4. web-iPhone X

    题目: 解题思路: 第一次看到html里只有字其他啥也没有的题,一脸懵逼,学长提示抓包改包,于是开始我的苦逼解题. 0x01 抓包 0x02 改包 由于题目说只有iphoneX才能接受这个websit ...

  5. Java 操作 Json

    1. 使用Gson构建Json 初始化 JsonObject jsonObject = new JsonObject(); 添加属性 jsonObject.addProperty("name ...

  6. 【面试问题】——秋招面试中遇到的一些问题&思维导图&反思

    前言:秋招也跑了挺多的公司,虽然都是招Web前端,但是不同的公司,因为需求和目的不同,面试的考察点也是各不相同.我没有实习经验,只有自己学东学西比较杂也比较浅的一些知识积累可以用,这个过程我发现了自己 ...

  7. debounce去弹跳

    通过返回闭包,来共用timer定时器,通过定时器的清除和设置来实现每次触发后重新计时. /** * * @param fn {Function} 实际要执行的函数 * @param delay {Nu ...

  8. Windows下载安装Numpy、Scipy、py-matplotlib

    一.安装环境 Windows10 64.python2.7 二.Numpy下载 1.下载Numpy: 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/# ...

  9. 一个简单的 js 时间对象创建

    JS中获取时间很常见,凑凑热闹,也获取一个时间对象试试 首先,先了解js的获取时间函数如下: var myDate = new Date();          //创建一个时间对象 myDate.g ...

  10. 深入理解javascript函数进阶系列第一篇——高阶函数

    前面的话 前面的函数系列中介绍了函数的基础用法.从本文开始,将介绍javascript函数进阶系列,本文将详细介绍高阶函数 定义 高阶函数(higher-order function)指操作函数的函数 ...