第一步,需要引入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") } }
/************************* 网络状态监听部分(开始) *************************/ /** 通过消息自动监听网络改变 添加消息监听 */ 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