개발

Swift iOS Push : 앱 Foreground 상태일때 푸시 표시하지 않기 (코드 부분)

소소ing 2020. 9. 22. 17:44
반응형

iOS 앱에서 앱을 사용중일 때 푸시를 받지 않도록 처리해 봅시다.

 

해당 글에서 코드 부분은 파란색으로 표기 됩니다.

해당 글에서 중요 부분은 붉은색으로 표기 됩니다.

 

1. "- iOS Push : 기본 연동" 이 선행된 상태에서 진행됩니다.

2. 앱이 Foreground 상태일때, 푸시를 전달 받게 되면 아래의 함수로 이벤트가 수신되며, completionHandler 부분의 값을 조절하여 푸시 표시를 하지 않으면 됩니다.

[AppDelegate.swift 파일 안]

// * ... 코드 생략 ...

@available(iOS 10, *)
extension AppDelegate : UNUserNotificationCenterDelegate {
    // * iOS 10 devices foreground에서 notifications 을 받을 경우 호출되는 함수
    func userNotificationCenter(_ center: UNUserNotificationCenter,
                                willPresent notification: UNNotification,
                                withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        // * 푸시 정보를 가져옴

        let userInfo = notification.request.content.userInfo
        // * 푸시 정보 출력
        print(userInfo)
       
        // * 전달 받은 Push에서 Push에 사용할 기능들 선택 부분

        //    - alert, badge, sound

        //    - 아래 항목에서 alert 를 지울 경우 : Push는 표시되지 않습니다.

        //    - 아래 항목에서 sound를 지울 경우 : 소리 및 진동이 들리지 않습니다. 

        //    - 아래 항목에서 badge를 지울경우 : 앱에 배지표시가 되지 않습니다. 

        completionHandler([.badge,.alert,.sound])
    }
}

// * ... 코드 생략 ...

반응형