728x90
안녕하세요. iOSangBong입니다.
오늘은 간단하게 네트워크를 감지하는 방법에 대해 알아볼것 입니다.
iOS 12 부터는 다행히 내부 라이브러리를 사용하면 됩니다.
https://developer.apple.com/documentation/network/nwpathmonitor
NWPathMonitor
바로 사용해보도록 하겠습니다.
일단 Network를 import 해줍니다.
그런 다음 NWPathMonitor를 선언해줍니다.
간단하게 NWPathMonitor를 선언해주면 되지만
특정상황을 모니터링 하고 싶다면 monitor1이나 monitor2로 사용하시면 됩니다.
저는 간단하게 View를 만든다음 onAppear 부분에 monitor를 Start 해줬습니다.
monitor.pathUpdateHandler를 이용해서
satisfied일때 사용가능 그외는 불가능이라고 해서 빌드해보면
디바이스로 빌드를 해서 비행기모드를 켜보니
정상적으로 모니터링 되는걸 확인 할 수 있습니다.
추가적으로 모니터링을 멈추고 싶다면 cancel()을 해주시면 됩니다.
이걸 프로젝트에 잘 활용하셨으면 좋겠네요.
참고를 위해 코드를 올려놓겠습니다.
import SwiftUI
import Network
struct NetworkView: View {
let monitor = NWPathMonitor()
let monitor1 = NWPathMonitor(requiredInterfaceType: .wifi)
let monitor2 = NWPathMonitor(prohibitedInterfaceTypes: [.wifi, .cellular])
var body: some View {
Text("Hello, World!")
.onAppear {
monitor.start(queue: DispatchQueue.global())
monitor.pathUpdateHandler = { path in
print("Network Path :\(path)")
if path.status == .satisfied {
print("네트워크 사용가능")
} else {
print("네트워크 사용불가능")
}
}
}
.onDisappear {
monitor.cancel()
}
}
}
다들 즐코딩하세요. 그럼 이만~
728x90
'Swift' 카테고리의 다른 글
[iOS][Swift] LocalAuthentication Face ID & Touch ID 생체인식 간단하게 알아보기 (0) | 2024.08.03 |
---|---|
[iOS][Swift] shake motion 알아보기 (0) | 2023.08.22 |
[iOS][Swift] 'keyWindow' was deprecated 간단하게 해결하기 (0) | 2023.08.11 |
[iOS][Swift] MQTT 간단하게 연결하기 (0) | 2023.07.22 |
[iOS][Swift] QR Code 간단하게 만들기 (0) | 2023.07.12 |