Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- APNS
- modern concurrency deep dive
- WWDC
- modern concurrency
- 야곰 # 야곰아카데미커리어스타터캠프 #iOS개발자 # 부트캠프
- 티스토리챌린지
- 오블완
- ios
- SWIFT
Archives
- Today
- Total
Geon
iOS 앱에서 로컬 푸시 알림(Local Push Notification)을 구현하는 방법은 무엇인가요? 본문
iOS developer essential skills
iOS 앱에서 로컬 푸시 알림(Local Push Notification)을 구현하는 방법은 무엇인가요?
jgkim1008 2024. 6. 24. 15:09로컬 푸시 알림과 원격 푸시 알림(Remote Push Notification)의 차이점은 무엇인가요?
로컬 푸시 알림 (Local Push Notification)
- 로컬 푸시 알림은 앱이 실행 중이거나 백그라운드에서 로컬 데이터에 기반하여 알림을 생성하고 표시하는 방식
- 로컬 푸시 알림은 서버와의 통신이 필요 없으며, 주로 사용자의 기기 내에서 발생하는 이벤트나 일정에 따라 알림을 생성합니다.
- 사용 사례:
- 일정 알림: 캘린더 앱에서 사용자의 일정에 따라 알림을 설정.
- 타이머 또는 알람: 시간 경과에 따라 알림을 표시.
- 위치 기반 알림: 사용자가 특정 위치에 도달했을 때 알림을 트리거.
원격 푸시 알림 (Remote Push Notification)
원격 푸시 알림은 서버에서 생성되어 푸시 알림 서비스를 통해 사용자의 기기로 전달되는 알림이며 이 방식은 서버와의 통신이 필요
앱이 실행 중이 아니더라도 알림을 전송할 수 있습니다.
로컬 노티 전송 방법
import UserNotifications
import SwiftUI
@main
struct ContentView: View {
var body: some View { VStack { Text("test") } } .onAppear { scheduleLocalNotification() }
func scheduleLocalNotification() {
let content = UNMutableNotificationContent()
content.title = "Time to Check the App"
content.body = "It's time to see what's new!"
content.sound = .default
// Trigger after 10 seconds
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 10, repeats: false)
let request = UNNotificationRequest(identifier: "localNotification", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) { error in
if let error = error {
print("Error scheduling local notification: \(error)")
}
}
}
}
- 원격 푸시 알림
- 아래 페이지 참고
푸시 알림의 콘텐츠(Content)와 트리거(Trigger)는 어떤 역할을 하나요?
- 컨텐츠
- 컨텐츠는 말 그대로 노티피케이션에 보여줄 컨텐츠
- 상단 코드 예시를 보면 title, body, sound, badge 를 설정할수 있다.
- 트리거
- 말 그대로 트리거 몇초뒤에, 반복 여부 등 을 설정할수 있다.
- request
- 위 컨텐츠와 트리거를 합하여 UNNotificationRequest를 보낸다.
사용자가 푸시 알림을 탭했을 때 앱의 동작을 처리하는 방법을 설명해주세요.
- UNUserNotificationCenterDelegate 의 delegate 메서드를 통해 처리하면 된다.
extension AppDelegate: UNUserNotificationCenterDelegate {
// Foreground에서 알림을 수신했을 때
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.alert, .badge, .sound])
}
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
if UIApplication.shared.applicationState == .active || UIApplication.shared.applicationState == .inactive { // 앱이 켜져있는 상태에서 클릭시 (활성화/비활성화(잠깐 숨겨놓은 상태))
} else { // 앱이 꺼져있는 상태에서 클릭시 (백그라운드)
}
completionHandler()
}
}
'iOS developer essential skills' 카테고리의 다른 글
Swift의 Property Wrapper에 대해 설명해주세요. (0) | 2024.07.09 |
---|---|
Swift의 접근 제어자(Access Control)에 대해 설명해주세요. (0) | 2024.06.27 |
iOS 앱에서 Core Bluetooth를 사용하여 BLE(Bluetooth Low Energy) 통신을 구현하는 방법은 무엇인가요 (0) | 2024.06.17 |
iOS 앱의 생명주기(App Life Cycle)에 대해 설명해주세요. (0) | 2024.04.13 |
Swift에서 옵셔널이란 무엇이며, 언제 사용해야 하나요? (0) | 2024.04.13 |