本篇主要讲解iOS开发中的网络监控

前言

在开发中,有时候我们需要获取这些信息:

  • 手机是否联网

  • 当前网络是WiFi还是蜂窝

那么我总结一下具体的使用场景有哪些?肯定有遗漏:

  1. 聊天列表,需要实时监控当前的网络是不是可达的,如果不可达,则出现不能联网的提示

  2. 在线视屏播放,需要判断当前的网络状态,如果不是WiFi,应该给出流量播放的提示

  3. 对于比较重要的网络请求,在请求出错的情况下,判断网路状态,找出请求失败原因。

  4. 可以把请求进行缓存后,当监听到网络连接成功后发送。举个例子,每次进app都要把位置信息发给服务器,如果发送失败后,发现是网络不可达造成的失败,那么可以把这个请求放入到一个队列中,在网络可达的时候,开启队列任务。

  5. 当网络状态变化时,实时的给用户提示信息

  6. 获取某个节点或地址是不是可达的

但是,极其不建议在发请求前,先检测当前的网络是不是可达。因为手机的网络状态是经常变化的》

SCNetworkReachabilityFlags

SCNetworkReachabilityFlags是获取网络状态最核心的东西。我们来看看它有哪些内容:

作用

SCNetworkReachabilityFlags能够判断某个指定的网络节点名称或者地址是不是可达的,也能判断该节点或地址是不是需要先建立连接,也可以判断是不是需要用户手动去建立连接。

注意:这里所说的连接分为用编程手段连接和用手动建立连接两种

我们