Swift实时监听网络状态(更新到Swift3)

Swift实时监听网络状态(更新到Swift3),第1张

概述最近做个项目,需要实时监听网络连接状态,网络连接断开时需要提醒用户手动打开网络,网络重新连接上之后需要做些 *** 作。身为小白的我感到很有压力,所以就不自觉的又上度娘那里去取经了。(哈哈,初学者嘛,大家理解)自己整理下,加深下印象以后也方便用 :) 下面直入正题,如何实现实时监听网络连接状态: 第一步,需要引入Reachability.swift文件 (下载链接:https://github.com/
最近做个项目,需要实时的监听网络连接状态,网络连接断开时需要提醒用户手动打开网络,网络重新连接上之后需要做些 *** 作。身为小白的我感到很有压力,所以就不自觉的又上度娘那里去取经了。(哈哈,初学者嘛,大家理解)自己整理下,加深下印象以后也方便用 :)

下面直入正题,如何实现实时监听网络连接状态:
第一步,需要引入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)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1073892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存