Programming/iOS

[iOS/Swift3.0] Swift FCM Closed App Push Notification Click Event

devssun 2018. 4. 23. 19:30
728x90
반응형

swift fcm closed app push notification click event

  • APNs로 되어있던 프로젝트를 FCM으로 바꾸면서 푸시 테스트를 몇번씩 진행을 하는데 앱을 강제 종료한 뒤 (홈버튼을 두번 눌러 앱을 날리는 것) 푸시를 받아 클릭하면 앱이 실행되고 그 이후의 동작을 하지않는 것을 발견하였다.

  • 앱이 terminated/closed된 이후에도 푸시 클릭 이벤트를 받아 해당 링크로 갈 수 있게 하기 위해서는 delegate 메소드에 원하는 코드를 추가해야한다.

  • AppDelegateUNUserNotificationCenterDelegate를 추가한 뒤 아래 메소드를 추가한다.

  • userNotificationCenter(_, didReceive, withCompletionHandler)

  • response에는 푸시에 담긴 데이터가 들어있다.

func userNotificationCenter(_ center: UNUserNotificationCenter,
                                didReceive response: UNNotificationResponse,
                                withCompletionHandler completionHandler: @escaping () -> Void) {
        let userInfo = response.notification.request.content.userInfo
        // Print message ID.
        if let messageID = userInfo[gcmMessageIDKey] {
            print("Message ID: \(messageID)")
        }
 
        // Print full message.
        print("userInfo : \(userInfo)")
 
        // userInfo는 [AnyHashable:Any] 형태를 갖는다.
        // 관련 로직을 추가한다.
 
        completionHandler()
    }
  • 앱이 active 상태가 되면 작성한 로직대로 수행하게 된다.
반응형