最近做个项目,需要实时的监听网络连接状态,网络连接断开时需要提醒用户手动打开网络,网络重新连接上之后需要做些 *** 作。身为小白的我感到很有压力,所以就不自觉的又上度娘那里去取经了。(哈哈,初学者嘛,大家理解)自己整理下,加深下印象以后也方便用 :)
下面直入正题,如何实现实时监听网络连接状态:
第一步,需要引入Reachability.swift文件
(下载链接:https://github.com/ashleymills/Reachability.swift)
Just drop the Reachability.swift file into your project. That’s it!
(直接找到Reachability.swift文件拖到你的项目中就可以啦。)
第二步,进入到VIEwController文件
/********************************************** 网络状态监听部分(开始) **********************************************/ // Reachability必须一直存在,所以需要设置为全局变量 let reachability = Reachability()! func NetworkStatusListener() { // 1、设置网络状态消息监听 2、获得网络Reachability对象 NotificationCenter.default.addobserver(self,selector: #selector(self.reachabilityChanged),@R_403_6889@: ReachabilityChangednotification,object: reachability) do{ // 3、开启网络状态消息监听 try reachability.startNotifIEr() }catch{ print("Could not start reachability notifIEr") } } // 移除消息通知 deinit { // 关闭网络状态消息监听 reachability.stopNotifIEr() // 移除网络状态消息通知 NotificationCenter.default.removeObserver(self,object: reachability) } // 主动检测网络状态 func reachabilityChanged(note: NSNotification) { let reachability = note.object as! Reachability // 准备获取网络连接信息 if reachability.isReachable { // 判断网络连接状态 print("网络连接:可用") if reachability.isReachableViaWiFi { // 判断网络连接类型 print("连接类型:WiFi") // strServerInternetAddRSS = getHostAddress_WLAN() // 获取主机IP地址 192.168.31.2 小米路由器 // processClIEntSocket(strServerInternetAddRSS) // 初始化Socket并连接,还得恢复按钮可用 } else { print("连接类型:移动网络") // getHostAddRSS_GPRS() // 通过外网获取主机IP地址,并且初始化Socket并建立连接 } } else { print("网络连接:不可用") dispatchQueue.main.async { // 不加这句导致界面还没初始化完成就打开警告框,这样不行 self.alert_noNetwrok() // 警告框,提示没有网络 } } } // 警告框,提示没有连接网络 ********************* func alert_noNetwrok() -> VoID { let alert = UIAlertController(Title: "系统提示",message: "请打开网络连接",preferredStyle: .alert) let cancelAction = UIAlertAction(Title: "确定",style: .default,handler: nil) alert.addAction(cancelAction) self.present(alert,animated: true,completion: nil) } /********************************************** 网络状态监听部分(结束) **********************************************/
如果编译无误的话,运行程序后在电脑上输出些内容,这是尝试切换网络状态试试,有没有提示。我自己在真机上测试成功。
大家加油!
总结以上是内存溢出为你收集整理的Swift实时监听网络状态(更新到Swift3)全部内容,希望文章能够帮你解决Swift实时监听网络状态(更新到Swift3)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)