swift 监听网络变化

前端之家收集整理的这篇文章主要介绍了swift 监听网络变化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
第一步,需要引入Reachability.swift文件 网上自行百度
在AppDelegate中使用
//判断当前网络是否可用
    func appDelegateCheckNetWork(){
        
        
        do {
            reachability = try Reachability.reachabilityForInternetConnection()
        } catch {
            print("appDelegate:Unable to create Reachability")
            return
        }
        if reachability.isReachable() {
            print("appDelegate:网络连接:可用")
            netWorkIsAvailable = true
        } else {
            print("appDelegate:网络连接:不可用")
            netWorkIsAvailable = false
        }
        
        // 检测网络类型
        if reachability.isReachableViaWiFi() {
            print("appDelegate:网络类型:Wifi")
        } else if reachability.isReachableViaWWAN() {
            print("appDelegate:网络类型:移动网络")
        } else {
            print("appDelegate:网络类型:无网络连接")
        }
           }
    
    //开启网络监听
    func monitorNetWork(){
        
       reachability = try Reachability.reachabilityForInternetConnection()
        
        reachability.whenReachable = { reachability in
        
        self.netWorkIsAvailable = true
        // 判断网络状态及类型
        print("网络可用")
        }
        
        // 网络不可用时执行
        reachability.whenUnreachable = { reachability in
        self.netWorkIsAvailable = false
        // 判断网络状态及类型
        print("网络不可用")
        }
        
        do {
        // 开始监听
        try reachability.startNotifier()
        } catch {
        print("AppDelegate:Unable to start notifier")
        }
        
    
    }
    
   


方法二:viewController中调用

@H_404_10@ /************************* 网络状态监听部分(开始) *************************/ /** 通过消息自动监听网络改变 添加消息监听 */ func NetworkStatusListener() { // 1、设置网络状态消息监听 NSNotificationCenter.defaultCenter().addObserver(self,selector:"networkStatusChange",name: ReachabilityChangedNotification,object: nil); // 2、获得网络Reachability对象 // Reachability必须一直存在,所以需要设置为全局变量 conn = Reachability.reachabilityForInternetConnection()!; // 3、开启网络状态消息监听 conn!.startNotifier(); } func networkStatusChange() { checkNetworkStatus(); } /** 移除消息通知 */ deinit { // 关闭网络状态消息监听 conn!.stopNotifier(); // 移除网络状态消息通知 NSNotificationCenter.defaultCenter().removeObserver(self); } /** 主动检测网络状态 */ func checkNetworkStatus() { let reachability = Reachability.reachabilityForInternetConnection() // 准备获取网络连接信息 if reachability!.isReachable() { // 判断网络连接状态 print("网络连接:可用") if reachability!.isReachableViaWiFi() { // 判断网络连接类型 print("连接类型:WiFi") } else if reachability!.isReachableViaWWAN() { print("连接类型:移动网络") } }else{ print("网络连接:不可用") print("连接类型:没有网络连接") } } /********************* 网络状态监听部分(结束) *************************/
</pre><p></p><pre name="code" class="html">

监听网络变化参考:

http://blog.csdn.net/json_vip/article/details/51754881

http://blog.csdn.net/zhang5690800/article/details/51995716

猜你在找的Swift相关文章