Firebase (FCM)를 사용하여 버튼이있는 리치 푸시 전송 방법

8838 단어 swift3

FCM을 사용하여 버튼이 있는 리치 푸시 알림 전송(도구: Postman)


  • mutable_content를 "true"로 설정
  • 데이터에 앱에 보낼 태그를 추가 (내 경우에는 data-url, data-type 추가), 여기에 추가한 버그 이름으로 앱에서 데이터를 가져옵니다.
  • notification의 title, body에는 통지의 제목과 내용을 기입
  • click_action은 앱에 버튼을 추가하고 싶을 때 앱에서 설정한 카테고리명을 기입한다.
  • to에 보내고 싶은 단말의 토큰을 기입



  • 앱 측의 카테고리 구현 방법 (버튼 추가)



    Notification Service Extension을 프로젝트에 추가





    NotificationService.swift의 didReceive 함수에 다음 코드 추가



    NotificationService.swift
    //プッシュ通知にボタンを追加
    let yesAction = UNNotificationAction(identifier: "yes", title: "はい", options: [])
    let noAction = UNNotificationAction(identifier: "no", title: "いいえ", options: [])
    //以下のカテゴリidentifier名はプッシュ通知送信側のclick_actionに追加
    let category = UNNotificationCategory(identifier: "btnCategory", actions: [yesAction, noAction], intentIdentifiers: [], options: [])
            UNUserNotificationCenter.current().setNotificationCategories([category])
    

    AppDelegate.swift에 버튼 이벤트 처리 추가



    AppDeleagate.swift
    extension AppDelegate : UNUserNotificationCenterDelegate {
    
        func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void)
        {
            if response.actionIdentifier == "yes" {
                let alert = UIAlertController(
                    title: "YES",
                    message: "YESをクリック",
                    preferredStyle: .alert)
                let defaultAction: UIAlertAction = UIAlertAction(title: "OK", style: .default, handler:{
                    (action: UIAlertAction!) -> Void in
                })
    
                alert.addAction(defaultAction)
                self.window?.rootViewController?.present(alert, animated: true, completion: nil)
            }
            if response.actionIdentifier == "no" {
                let alert = UIAlertController(
                    title: "NO",
                    message: "NOをクリック",
                    preferredStyle: .alert)
                let defaultAction: UIAlertAction = UIAlertAction(title: "OK", style: .default, handler:{
                    (action: UIAlertAction!) -> Void in
                })
    
                alert.addAction(defaultAction)
                self.window?.rootViewController?.present(alert, animated: true, completion: nil)
            }
            completionHandler()
    
        }
    }
    

    좋은 웹페이지 즐겨찾기