47 lines
1.4 KiB
Swift
47 lines
1.4 KiB
Swift
//
|
|
// NetworkReachibility.swift
|
|
// WOKA
|
|
//
|
|
// Created by MacBook Pro on 06/05/24.
|
|
//
|
|
|
|
import Alamofire
|
|
|
|
class NetworkReachibility{
|
|
|
|
static let shared = NetworkReachibility()
|
|
private init(){}
|
|
let manager = NetworkReachabilityManager(host: "www.apple.com")
|
|
var isMonitoring = false
|
|
fileprivate var isInternetReachable = false
|
|
|
|
func startMonitoring(queue : DispatchQueue? = .main,onCompletion : @escaping (Bool) -> Void) {
|
|
manager?.startListening(onQueue: queue!, onUpdatePerforming: { (status) in
|
|
self.isMonitoring = true
|
|
switch status {
|
|
case .notReachable:
|
|
print("network connection status - lost")
|
|
self.isInternetReachable = false
|
|
onCompletion(false)
|
|
case .reachable(.ethernetOrWiFi):
|
|
print("network connection status - ethernet/WiFI")
|
|
self.isInternetReachable = true
|
|
onCompletion(true)
|
|
case .reachable(.cellular):
|
|
print("network connection status - cellular")
|
|
self.isInternetReachable = true
|
|
onCompletion(true)
|
|
default:
|
|
self.isInternetReachable = false
|
|
onCompletion(false)
|
|
break
|
|
}
|
|
})
|
|
}
|
|
|
|
func stopMonitoring(){
|
|
self.isMonitoring = false
|
|
manager?.stopListening()
|
|
}
|
|
}
|