首页 > 其他分享 >IOS网络状态变化监听

IOS网络状态变化监听

时间:2023-04-05 14:25:09浏览次数:32  
标签:case self IOS 网络 reachable isWifiOn type 监听

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)

标签:case,self,IOS,网络,reachable,isWifiOn,type,监听
From: https://www.cnblogs.com/r1cardo/p/17289358.html

相关文章

  • IOS富文本
    IOS富文本通过String创建一个NSMutableAttributedString,必须是带有Mutable的可变富文本,否则无法添加属性letstring="我是一个富文本"letastring=NSMutableAttributedString(string:string)给NSMutableAttributedString添加属性astring.addAttributes([.foregroun......
  • 有关IOS内存读写冲突
    有关IOS内存读写冲突在写内存相关代码时,获取已使用内存代码中报错lethostPort:mach_port_t=mach_host_self()varhost_size=mach_msg_type_number_t(MemoryLayout<vm_statistics_data_t>.stride/MemoryLayout<integer_t>.stride)varpagesize:vm_siz......
  • IOS多线程之NSOperation(1)
    IOS多线程之NSOperation(1)NSOperation是OC语言中基于GCD的面向对象的封装;提供了一些用GCD不好实现的功能;线程的生命周期由系统自动管理。NSOperation需要和NSOperationQueue配合使用来实现多线程方案。单独使用NSOperation的话,它是属于同步操作,并不具备开......
  • iOS - 利用 UIBezierPath 绘制圆弧
    iOS-利用UIBezierPath绘制圆弧APIUIBezierPath绘制圆弧主要利用以下方法:openfuncaddArc(withCentercenter:CGPoint,radius:CGFloat,startAngle:CGFloat,endAngle:CGFloat,clockwise:Bool)方法中各参数含义:center:圆心radius:半径startAngle:开始弧度endAn......
  • IOS实现水波纹
    IOS实现水波纹需要实现一个水波纹效果其实就是画两个正弦函数或者余弦函数的layer在view上面,根据屏幕刷新率来重绘,更新其左右偏移量来让其看起来是在左右移动具体实现定义两个layer,用不同的颜色填充lazyvarfrontLayer:CAShapeLayer={lettempV=CAShap......
  • IOS颜色选择器
    IOS颜色选择器UIColorWellUIColorWell是一个继承UIControl的视图,它不能调整大小和UISwitch类似,大小大约是44*44。点击可弹出一个选择颜色的弹窗因为是继承UIControl所以可以添加UIControlEventValueChanged类型的Event事件去监听颜色改变///Setstheselectedcoloron......
  • 事件监听
    JavaScriptHTMLDOM事件监听程序(w3school.com.cn)事件监听事件: HTML事件是发生在HTML元素上的“事情”。比如:按钮被点击鼠标移动到元素之上按下键盘按键事件监听: JavaScript 可以在事件被侦测到时执行代码 事件绑定  方法一&方法二:    ......
  • OPNET网络仿真分析-1.1.2、OPNET简介
    OPENT网络仿真分析(作者:栾鹏、陈玓玏)OPNET网络仿真分析-目录OPNET网络仿真分析-电子版1.1.2、OPNET简介OPNET公司起源于MIT(麻省理工学院),成立于1986年。1987年OPNET公司发布了其第一个商业化的网络性能仿真软件,提供了具有重要意义的网络性能优化工具,使得具有预测性的网络性能管理和......
  • OPNET网络仿真分析-1.1.1、网络仿真简介
    OPENT网络仿真分析(作者:栾鹏、陈玓玏)1.1.1、网络仿真简介1、网络仿真的目的:在建设网络,开展网络业务之前需要对配置的网络设备、所采用的网络技术、承载的网络业务等方面的投资进行综合分析和评估,提出性能价格比最优的解决方案。构建新网络,升级改造现有网络,或者测试新协议,都需要对......
  • nextcloud 您的网络请求过多。如果出现错误,请稍后重试或与您的管理员联系。问题排查过
    问题描述一觉醒来,登录自己搭建的nextcloud服务器,结果发现用记忆在浏览器里面的密码登录不进去——输入用户名密码后,登录没有反应。多登录几次,页面提示:您的网络请求过多。如果出现错误,请稍后重试或与您的管理员联系。问题排查上网搜索,有不同的说法,我尝试了以下说法都不管用:1、c......