Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
//
2
//  NetworkMonitor.swift
3
//  twogetskills
4
//
5
//  Created by Efrain Yanez Recanatini on 6/12/22.
6
//
7
 
8
import Network
9
import SwiftUI
10
 
11
// An enum to handle the network status
12
enum NetworkStatus: String {
13
    case connected
14
    case disconnected
15
}
16
 
17
class NetworkMonitor: ObservableObject {
18
    private let monitor = NWPathMonitor()
19
    private let queue = DispatchQueue(label: "Monitor")
20
 
21
    @Published var status : NetworkStatus = .connected
22
    //@Published var isConnected : Bool = true
23
   // @Published var isDisconnected : Bool = true
24
 
25
    init() {
26
        monitor.pathUpdateHandler = { [weak self] path in
27
            guard let self = self else { return }
28
 
29
            // Monitor runs on a background thread so we need to publish
30
            // on the main thread
31
 
32
            DispatchQueue.main.async {
33
 
34
                if path.status == .satisfied {
35
                    self.status = .connected
36
                    //self.isConnected = true
37
                    //self.isDisconnected = false
38
                } else {
39
                    self.status = .disconnected
40
                    //self.isConnected = false
41
                    //self.isDisconnected = true
42
                }
43
 
44
            }
45
 
46
        }
47
        monitor.start(queue: queue)
48
    }
49
}