本篇主要讲解iOS开发中的网络监控
前言
在开发中,有时候我们需要获取这些信息:
手机是否联网
当前网络是WiFi还是蜂窝
那么我总结一下具体的使用场景有哪些?肯定有遗漏:
聊天列表,需要实时监控当前的网络是不是可达的,如果不可达,则出现不能联网的提示
在线视屏播放,需要判断当前的网络状态,如果不是WiFi,应该给出流量播放的提示
对于比较重要的网络请求,在请求出错的情况下,判断网路状态,找出请求失败原因。
可以把请求进行缓存后,当监听到网络连接成功后发送。举个例子,每次进app都要把位置信息发给服务器,如果发送失败后,发现是网络不可达造成的失败,那么可以把这个请求放入到一个队列中,在网络可达的时候,开启队列任务。
当网络状态变化时,实时的给用户提示信息
获取某个节点或地址是不是可达的
但是,极其不建议在发请求前,先检测当前的网络是不是可达。因为手机的网络状态是经常变化的》
SCNetworkReachabilityFlags
SCNetworkReachabilityFlags是获取网络状态最核心的东西。我们来看看它有哪些内容:
作用
SCNetworkReachabilityFlags能够判断某个指定的网络节点名称或者地址是不是可达的,也能判断该节点或地址是不是需要先建立连接,也可以判断是不是需要用户手动去建立连接。
注意:这里所说的连接分为用编程手段连接和用手动建立连接两种
我们