알림 설정 가져오기

9489 단어 Swiftios10iOS

개시하다


iOS 10에서 알림 설정을 받을 수 있어서 해봤어요.
각 사용자의 알림 설정을 판단하면 어떤 행동을 할 수 있을 것 같다.
※ 다음과 같은 정보를 얻을 수 있습니다.
  • 통지 허용의 가부
  • 알림 센터에 표시 여부
  • "App 아이콘에 배지 표시"여부
  • 잠금 화면에 표시됨
  • 알림 스타일의 종류
  • 목소리 가능
  • 휘장의 가부
  • 경보의 가부

  • 그러나 iOS 9 이하에서도 알림 허용 여부를 판단할 수 있다.
    AppDelegate.swift
        func application(_ application: UIApplication, didRegister notificationSettings: UIUserNotificationSettings) {
    
            if notificationSettings.types == .none {
                print("通知を不許可")
            } else {
                //.badge / .sound / .alert
                print("通知を許可")
            }
        }
    

    1. 알림 허용 여부


    알림 설정에 대한 알림 허용 값을 얻을 수 있습니다.
    authorizationStatus
    설명
    .notDetermined
    선택하지 않음
    .denied
    허용되지 않음
    .authorized
    허락
    값은 다음과 같은 enum으로 정의됩니다.
    UNNotificationSettings.h
    @available(iOS 10.0, *)
    public enum UNAuthorizationStatus : Int {
    
    
        // The user has not yet made a choice regarding whether the application may post user notifications.
        case notDetermined
    
    
        // The application is not authorized to post user notifications.
        case denied
    
    
        // The application is authorized to post user notifications.
        case authorized
    }
    
    설정을 가져오는 방법은 다음과 같다.
    그리고 사용할 때 import UserNotifications를 가져오는 것을 잊지 마세요!
    사용법
            UNUserNotificationCenter.current().getNotificationSettings { (settings) in
    
                switch settings.authorizationStatus {
                case .authorized:
                    break
                case .denied:
                    break
                case .notDetermined:
                    break
                }
            }
    

    2. 공지 센터에 표시할지 여부


    알림 설정의 알림 센터에 표시 값을 얻을 수 있습니다.
    notificationCenterSetting
    설명
    .notSupported
    지원되지 않음
    .disabled
    OFF
    .enabled
    ON
    값은 다음과 같은 enum으로 정의됩니다.
    UNNotificationSettings.h
    @available(iOS 10.0, *)
    public enum UNNotificationSetting : Int {
    
        // The application does not support this notification type
        case notSupported
    
    
        // The notification setting is turned off.
        case disabled
    
    
        // The notification setting is turned on.
        case enabled
    }
    
    설정을 가져오는 방법은 다음과 같다.
    사용법
            UNUserNotificationCenter.current().getNotificationSettings { (settings) in
    
                switch settings.notificationCenterSetting {
                case .enabled:
                    break
                case .disabled:
                    break
                case .notSupported:
                    break
                }
            }
    

    3. "App 아이콘에 배지 표시" 여부


    알림 설정의 "App 아이콘에 배지 표시"값을 얻을 수 있습니다.
    badgeSetting
    설명
    .notSupported
    지원되지 않음
    .disabled
    OFF
    .enabled
    ON

    4. "잠긴 화면에 표시" 여부


    잠긴 화면에 표시됨으로 설정된 알림 값을 받을 수 있습니다.
    lockScreenSetting
    설명
    .notSupported
    지원되지 않음
    .disabled
    OFF
    .enabled
    ON

    5. 알림 스타일의 종류


    알림 설정의 알림 스타일 값을 얻을 수 있습니다.
    alertStyle
    설명
    .none
    없음
    .banner
    플래카드
    .alert
    경고
    값은 다음과 같은 enum으로 정의됩니다.
    UNNotificationSettings.h
    @available(iOS 10.0, *)
    public enum UNAlertStyle : Int {
    
        case none
    
        case banner
    
        case alert
    }
    
    설정을 가져오는 방법은 다음과 같다.
    견본
            UNUserNotificationCenter.current().getNotificationSettings { (settings) in
    
                switch settings.alertStyle {
                case .none:
                    break
                case .banner:
                    break
                case .alert:
                    break
                }
            }
    

    6. 목소리 가부


    UNUserNotificationCenter.current().RequestAuthorization에서
    옵션에 설정된 값(.sound)을 가져올 수 있습니다.
    soundSetting
    설명
    .notSupported
    지원되지 않음
    .disabled
    OFF
    .enabled
    ON

    7. 배지의 가부


    UNUserNotificationCenter.current().RequestAuthorization에서
    옵션에 설정된 값(.badge)을 가져올 수 있습니다.
    badgeSetting
    설명
    .notSupported
    지원되지 않음
    .disabled
    OFF
    .enabled
    ON

    8. 경보의 가부


    UNUserNotificationCenter.current().RequestAuthorization에서
    옵션에 설정된 값(.alert)을 가져올 수 있습니다.
    alertSetting
    설명
    .notSupported
    지원되지 않음
    .disabled
    OFF
    .enabled
    ON

    총결산


    알림을 OFF로 설정한 사용자의 경우
    OS에 표시되는 공지 권한 대화 상자 열기
    다시 보여줬으면 좋겠어요.
    다음 대화 상자는 다음과 같습니다.

    가능하다면 말씀해 주세요.

    참고 자료

    좋은 웹페이지 즐겨찾기