Кнопка "Очистить действие" в iOS push-баннере

Я хочу что-то сделать, когда пользователь может удалить уведомление с главного экрана, можно ли получить триггер, когда пользователь нажал на кнопку очистки на баннере push-уведомления, в итоге я добавил пользовательскую кнопку в окне, но это невозможно.

Изображение прикреплено. Я хочу вызвать, когда пользователь нажимает на это четкое действие, любая идея???

{
   “aps” : {
      “category” : “MEETING_INVITATION”
      “alert” : {
         “title” : “Weekly Staff Meeting”
         “body” : “Every Tuesday at 2pm”
      },
   },
   “MEETING_ID” : “123456789”,
   “USER_ID” : “ABCD1234”

} 

Я сделал это, но его кнопка добавления на экране, как всплывающее окно

func userNotificationCenter(_ center: UNUserNotificationCenter,
       didReceive response: UNNotificationResponse,
       withCompletionHandler completionHandler: 
         @escaping () -> Void) {

   // Get the meeting ID from the original notification.
   let userInfo = response.notification.request.content.userInfo
   let meetingID = userInfo["MEETING_ID"] as! String
   let userID = userInfo["USER_ID"] as! String

   // Perform the task associated with the action.
   switch response.actionIdentifier {
   case "ACCEPT_ACTION":
      sharedMeetingManager.acceptMeeting(user: userID, 
                                    meetingID: meetingID)
      break

   case "DECLINE_ACTION":
      sharedMeetingManager.declineMeeting(user: userID, 
                                     meetingID: meetingID)
      break

   // Handle other actions…

   default:
      break
   }

   // Always call the completion handler when done.    
   completionHandler()
}

1 ответ

Из документов о actionIdentifier:

Этот параметр может содержать один идентификатор одного из ваших объектов UNNotificationAction или он может содержать системный идентификатор. Системными идентификаторами являются UNNotificationDefaultActionIdentifier и UNNotificationDismissActionIdentifier, которые указывают, что пользователь открыл приложение или отклонил уведомление без каких-либо дальнейших действий.

Таким образом, вам не нужно использовать свои собственные идентификаторы, используйте системные.

Вместо

"ACCEPT_ACTION"

использование

UNNotificationDefaultActionIdentifier

и вместо

"DECLINE_ACTION"

использование

UNNotificationDismissActionIdentifier
Другие вопросы по тегам