IOS网络状态变化监听
IOS网络状态变化监听
使用Alamofire库的NetworkReachabilityManager
一共有三种状态
/// It is unknown whether the network is reachable.
case unknown
/// The network is not reachable.
case notReachable
/// The network is reachable on the associated `ConnectionType`.
case reachable(ConnectionType)
分别是
- 未知
- 未连接
- 已连接
其中已连接又分为两种
/// The connection type is either over Ethernet or WiFi.
case ethernetOrWiFi
/// The connection type is a cellular connection.
case cellular
分别是
- 以太网或wifi
- 蜂窝网络
开始监听
reachability?.startListening(onUpdatePerforming: { status in
switch status {
case .notReachable:
print("无网络")
self.isWifiOn = false
self.isCellarOn = false
case .unknown:
print("未知")
self.isWifiOn = false
self.isCellarOn = false
case .reachable(let type):
self.isWifiOn = type == .ethernetOrWiFi
self.isCellarOn = type == .cellular
}
NotificationCenter.default.post(name: deviceNetworkNotification, object: nil, userInfo: ["wifi": self.isWifiOn, "cellar": self.isCellarOn])
})
监听到网络改变时发送全局通知
需要接收通知的地方添加监听
NotificationCenter.default.addObserver(self, selector: #selector(onNetworkChanged(noti:)), name: deviceNetworkNotification, object: nil)
IOS网络状态变化监听的更多相关文章
- iOS 使用AFNetWorking监听APP网络状态变化(可用于更改缓存策略、提示网络等)
前言 我们知道在APP开发过程中.监听手机当前的网络状态还是一个非经常常使用的方法,这里我来为大家接受一种使用AFNetWorking来监听当前的网络状态的方法:网络监听对程序开发的帮助有非常多:比方 ...
- Python黑客编程基础3网络数据监听和过滤
网络数据监听和过滤 课程的实验环境如下: • 操作系统:kali Linux 2.0 • 编程工具:Wing IDE • Python版本:2.7.9 • 涉及 ...
- iOS: 使用KVO监听控制器中数组的变化
一.介绍: KVO是一种能动态监听到属性值的改变的方式,使用场景非常广泛,这里我只讲如何监听控制器ViewController中数组的变化. 二.了解: 首先我们应该知道KVO是不能直接监听控制器Vi ...
- Android 网络流量监听开源项目-ConnectionClass源码分析
很多App要做到极致的话,对网络状态的监听是很有必要的,比如在网络差的时候加载质量一般的小图,缩略图,在网络好的时候,加载高清大图,脸书的android 客户端就是这么做的, 当然伟大的脸书也把这部分 ...
- 类似吸顶功能解决ios不能实时监听onscroll的触发问题
问题:近期项目需要一个类似西东功能,当页面向上滚动160px后div固定在顶部 解决方法:首先,想到的是window.onscroll方法 .fixed{position:fixed;-webkit- ...
- 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据)
首先安装网络监听软件 运行这个软件 这个软件安装到电脑上,默认是监听咱电脑上的网络通信 咱们先监听电脑的软件的网络通信数据,然后再说怎么监听Wi-Fi和APP的软件的网络通信数据 咱就监听咱基础篇的 ...
- iOS 键盘的监听 调整view的位置
iOS在处理键盘的出现和消失时需要监听UIKeyboardWillChangeFrameNotifications/UIKeyboardDidHideNotifications - (void)vie ...
- iOS地图 -- 区域监听的实现和小练习
区域监听用到的方法 [self.mgr startMonitoringForRegion:region]; --> 开启区域监听,没有返回值,在代理方法中得到信息并且处理信息 注:该方法只有用户 ...
- IOS开发:监听来电状态的改变。
#import <CoreTelephony/CTCallCenter.h> #import <CoreTelephony/CTCall.h> @property(nonato ...
- 【iOS】通知监听
下例为:监听文本框 accountField 内容的改变, 当发生改变时, 调用textChange方法(多次).监听结束需要移除通知. - (void)viewDidLoad { [super ...
随机推荐
- Kubernetes基础(基本概念、架构)(十)
一.介绍 Kubernetes(简称 K8S) 的出现是容器化技术发展的必然结果,容器化是应用程序级别的虚拟化,运行单个内核上有多个独立的用户空间实例,这些实例就是容器:容器提供了将应用程序的代码.运 ...
- 常用的linux命令 docker常用命令
mkdir 新建目录 rmdir 删除目录 rm只能删除文件,不能删除目录 cp test.txt Documents 进入容器的目录 docker exec -it <container_id ...
- 解决 WebSocketClient.js?5586:16 WebSocket connection to 'ws://192.168.13.25:8080/ws' failed:
控制台报错: vue.config.js Vue的配置文件 const { defineConfig } = require('@vue/cli-service') module.exports = ...
- Acrobat DC安装报错1603,Microsoft Visual C++2013(x64)失败
之前顺利安装过Acrobat DC,但可能因为自动更新了,导致让我重新登录才能使用,无法再次破解.于是我卸载后重新安装,发现提示Microsoft Visual C++2013(x64)运行安装失败. ...
- 欢迎来到IoT解忧杂货铺
这是一间特殊的杂货铺 门面不大,却包罗万物 如果你也遇到一些烦恼 欢迎来到,IoT解忧杂货铺 解忧秘方·工业 厂里的几十台设备真让人头疼 协议种类太多太复杂 设备没法全联网 产线故障了也不知道 自己出 ...
- Windows 如何启用 Administrator 账户
Windows 默认安装的时候需要自己定义一个账户,不是管理员账户,不能操作某些目录,有时很不方便.不过我们可以手动打开,像盗版一样默认使用 Administrator 账户: 按下Win + R, ...
- 网页设计中常用的Web英文安全字体
原文地址:https://www.openkee.com/post-176.html 在 Web 编码中,CSS 默认应用的 Web 字体是有限的,你能看到的字体别人未必看得到.虽然在新版本的CSS3 ...
- luogu P3842 [TJOI2007] 线段
link 好题,考虑如何设定状态. 设\(dp_{i,0/1}\)表示到了第\(i\)行走完后停在这一行的最左侧/最右侧. 设定\(l_i\)表示这一行该线段的最左侧,\(r_i\)表示这一行的最右侧 ...
- linux基本指令总结
拖了好久的linux学习,终于开始啦 环境终于没问题了 边学边总结 一.常用指令 1.1 关机与开机 poweroff 马上关机 reboot 马上重启 1.2 目录文件操作命令 cd / 切换到根目 ...
- 基于XAML框架和跨平台项目架构设计的深入技术分析
XAML平台和跨平台开发策略 本文基于Vicky&James 2024年10月22日在韩国Microsoft总部BMW meetup会议上的演讲内容重新整理而成.这次研讨会我们深入探讨了基于X ...