- NWPathMonitor는 min iOS 12.0부터 지원
12.0 미만은 다른것 사용
진행중인 프로젝트에 Network 연결이 실패되었을 때, 네트워크 재연결하는 알림 문구 구현하기.
1. 네트워크 상태 관리자 클래스 구현
class Network: ObservableObject {
let monitor = NWPathMonitor()
let queue = DispatchQueue(label: "Monitor")
@Published private(set) var connected: Bool = false
func checkConnection() {
monitor.start(queue: queue)
monitor.pathUpdateHandler = { [weak self] path in
DispatchQueue.main.async {
self?.connected = path.status == .satisfied
}
}
}
func stop() {
monitor.cancel()
}
}
2. NWPathMonitor를 사용한 네트워크 상태 모니터링 예시
...
@StateObject var network: Network = Network()
var body: some View {
VStack {
if network.isConnected {
Text("네트워크 연결됨")
}
else {
Text("네트워크 연결 실패")
}
}
.onAppear {
network.checkConnection()
}
.onChange(of: network.isConnected) {
if !$0 {
}
}
}