일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- graph
- 그래프
- 개발자
- Xcode
- modal
- Apple
- Python
- Swift
- 어플리케이션
- PyQt
- androidstudio
- Android
- 개발
- UIKit
- cocoapods
- Chart
- UITableView
- button
- library
- ui
- TableView
- Chrats
- kotlin
- charts
- PyQt5
- Storyboard
- 라이브러리
- ios
- UIButton
- alamofire
- Today
- Total
Jiwift
[iOS/Swift] Notification 권한 확인하는 코드 , Notification Permission Check 본문
[iOS/Swift] Notification 권한 확인하는 코드 , Notification Permission Check
지위프트 2023. 10. 20. 01:00
import UserNotifications
struct NotificationPermissionCheck {
/*
사용자의 알림 권한을 확인하고 결과를 완료 핸들러를 통해 반환합니다.
- Parameter completion: 알림 권한 확인 결과를 처리할 완료 핸들러입니다. `true`는 알림 권한이 부여된 경우를 나타내고,
`false`는 권한이 거부되거나 아직 결정되지 않은 경우를 나타냅니다.
*/
static func check(completion: @escaping (Bool) -> Void) {
let current = UNUserNotificationCenter.current()
current.getNotificationSettings { settings in
switch settings.authorizationStatus {
case .authorized:
// 사용자가 알림 권한을 부여한 경우
print("알림에 대한 권한이 부여된 사용자")
completion(true)
case .denied, .ephemeral, .notDetermined, .provisional:
// 사용자가 알림 권한을 거부한 경우 또는 아직 결정하지 않은 경우
print("사용자 거부 알림 권한 또는 아직 결정하지 않음")
completion(false)
@unknown default:
// 알려지지 않은 권한 상태
print("Unknown Status")
completion(false)
}
}
}
}
이 코드는 iOS 앱에서 사용자의 알림 권한을 확인하는 데 사용됩니다. 주로 알림을 전송하기 전에 사용자가 알림을 허용했는지 여부를 확인하는 데 유용합니다. UserNotifications 프레임워크를 사용하여 알림 권한 상태를 확인합니다.
1. UNUserNotificationCenter.current():
UNUserNotificationCenter 클래스의 current() 메서드를 사용하여 현재 알림 센터의 인스턴스를 가져옵니다.
2. current.getNotificationSettings(completionHandler:):
알림 센터 인스턴스를 사용하여 현재 알림 설정을 비동기적으로 가져옵니다. 이 작업은 사용자가 알림 권한을 부여했는지, 거부했는지 또는 아직 결정하지 않았는지를 확인합니다.
3. switch settings.authorizationStatus:
알림 설정을 확인한 후, 권한 상태를 authorizationStatus를 통해 확인합니다. 여기서 각 상태에 따라 다음과 같은 처리를 수행합니다.
- .authorized: 사용자가 알림 권한을 부여한 경우입니다. 이 경우 completion(true)를 호출하여 true 값을 완료 핸들러로 반환합니다.
- .denied, .ephemeral, .notDetermined, .provisional: 사용자가 알림 권한을 거부하거나 아직 결정하지 않았거나, 임시 권한이 부여된 경우입니다. 이러한 경우에는 completion(false)를 호출하여 false 값을 완료 핸들러로 반환합니다.
- @unknown default: 알려지지 않은 권한 상태일 경우, completion(false)를 호출하여 권한 상태를 알 수 없다는 것을 나타냅니다.
이 코드를 사용하면 앱이 알림을 보내기 전에 사용자의 알림 권한을 확인하고, 권한에 따라 적절한 조치를 취할 수 있습니다. 예를 들어, 사용자가 알림 권한을 거부한 경우 사용자에게 권한을 요청하거나 알림을 사용하지 않도록 조치를 취할 수 있습니다.
권한에 따른 동작은 구현 방식에 따라서 수정해서 사용하시면 됩니다.
사용 예시
NotificationPermissionCheck.check(completion: { result in
if result {
// 권한이 있습니다.
} else {
// 권한이 없습니다.
}
})
'iOS Dev > Swift' 카테고리의 다른 글
[iOS/Swift] 구조체를 JSON 형태로 변환하기 struct to json (1) | 2024.04.12 |
---|---|
[iOS/Swift] 카메라 앨범 권한 요청하기 및 권한 확인, camera album permission check (0) | 2023.10.21 |
[iOS/Swift] 특정 월을 기준으로 기간 범위 구하기, 연/월 날짜 범위 구하기 (0) | 2023.10.19 |
[iOS/Swift] 코드로 UIViewConroller를 UINavigationController로 감싸기 (0) | 2023.10.16 |
[iOS/Swift] Root ViewController 변경하기, Root 화면 바꾸기, 'windows' was deprecated in iOS 15.0 (0) | 2023.10.16 |