[SwiftUI] 네트워크 연결 확인하기

2024. 1. 23. 19:01· → Swift Archive
목차
  1. 네트워크 연결 확인 뷰
  2. NetworkMonitor 클래스 생성
  3. 적용 예시

네트워크 연결 확인 뷰

아래와 같이 네트워크 연결에 따라서 실시간으로 인터넷 연결, 인터넷 연결 안됨 창을 표시한다.

 

NetworkMonitor 클래스 생성

아래와 같이 SwiftUI 에 새로 도입된 @Observable 이 사용된다. init() 을 하게 되면, isConnected 라는 변수를 인터넷의 연결여부에 따라서 업데이트 해준다.

import Foundation
import Network

@Observable
class NetworkMonitor {
    private let networkMonitor = NWPathMonitor()
    private let workerQueue = DispatchQueue(label: "Monitor")
    var isConnected = false
    
    init() {
        networkMonitor.pathUpdateHandler = { path in
            self.isConnected = path.status == .satisfied
        }
        networkMonitor.start(queue: workerQueue)
    }
}

적용 예시

아래에 @State private var networkMonitor = NetworkMonitor() 로 불러와서 isConnected 변수를 활용해 주면 된다.

import SwiftUI

struct ContentView: View {
    @State private var networkMonitor = NetworkMonitor()
    
    var body: some View {
        if networkMonitor.isConnected {
            VStack {
                Image(systemName: "wifi")
                    .font(.largeTitle)
                    .padding(.bottom)
                Text("인터넷 연결")
            }
        } else {
            VStack {
                Image(systemName: "wifi.slash")
                    .font(.largeTitle)
                    .padding(.bottom)
                Text("인터넷 연결 안됨")
            }
        }
    }
}

'→ Swift Archive' 카테고리의 다른 글

[SwiftUI] 앱의 실행, 종료 알기  (1) 2024.01.27
[SwiftUI] 앱이 background 에서 다시 돌아왔을 때 알기  (0) 2024.01.27
[SwiftUI] 커스텀 글래스모피즘 구현하기  (0) 2024.01.10
[SwiftUI] PolygonChart 만들기  (1) 2023.12.15
[SwiftUI] 햅틱 반응 적용하기  (1) 2023.11.15
  1. 네트워크 연결 확인 뷰
  2. NetworkMonitor 클래스 생성
  3. 적용 예시
'→ Swift Archive' 카테고리의 다른 글
  • [SwiftUI] 앱의 실행, 종료 알기
  • [SwiftUI] 앱이 background 에서 다시 돌아왔을 때 알기
  • [SwiftUI] 커스텀 글래스모피즘 구현하기
  • [SwiftUI] PolygonChart 만들기
Swift librarian
Swift librarian
Swift librarian
Swift Library
Swift librarian
전체
오늘
어제
  • 분류 전체보기 (231)
    • 📺 Programming (5)
    • → Architecture (2)
    • → Design Pattern (0)
    • → Computer Science (15)
    • ⚙️ Algorithm (0)
    • → 알고리즘 관련 (22)
    • → Problems (104)
    • 🚀 Project (0)
    • → 알쏭달쏭 (0)
    • → Shook (2)
    • → Solver (8)
    • → Taster (7)
    • → Outline (4)
    • → Pointer (2)
    • → Guesser (3)
    • 🦜 Swift (2)
    • → Swift Archive (12)
    • → Swift Study (12)
    • → Xcode (6)
    • 🧰 Framework (0)
    • → Foundation (1)
    • → UIKit (2)
    • → SwiftUI (3)
    • → CoreData (2)
    • → MapKit (1)
    • → CoreHaptic (1)
    • → User Notification (1)
    • → StoreKit (2)
    • 🏛️ Library (0)
    • → TCA (0)
    • 🐈‍⬛ Git (8)
    • → Git의 원리 (2)
    • → Git 심화 (1)
    • 📦 Other (1)
    • 👦🏻 Log (0)

최근 글

hELLO · Designed By 정상우.v4.2.2
Swift librarian
[SwiftUI] 네트워크 연결 확인하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.