Как удалить push-уведомления, которые уже были отправлены? - PullRequest
0 голосов
/ 17 декабря 2018

СИТУАЦИЯ:

Мне нужно отправить push-уведомления определенной группе пользователей.
Когда первый пользователь этой группы выполняет определенное действие (нажмите на кнопку внутри уведомления), мне нужно удалить уведомление со всех устройств других пользователей.

ПРИМЕЧАНИЯ:

Я использую Квазар в качестве гибридной структуры и Laravel для серверного API.Я использую oneSignal для отправки push-уведомлений с запросами php cURL.

В качестве операционной системы устройства я сейчас сосредоточен на Android, но в идеале я ищу способ добиться этого как в Android, так и в IOS..

ПОПЫТКИ:

В данный момент я отправляю уведомление с уведомлением_id в качестве полезной нагрузки.Когда пользователь нажимает кнопку, он вызывает обратный вызов, который отправляет уведомление_id обратно на сервер.Пока здесь нет проблем.

У меня есть идентификатор уведомления, который необходимо удалить с других устройств.

Но сейчас я не знаю, как удалить его с сервера.

OneSignal имеет метод отмены , но он применяется только для запланированных уведомлений (не отправлено).Если я пытаюсь применить этот метод к отправленному уведомлению, выдается ошибка: Notification has already been sent to all recipients.

ВОПРОС:

Можно ли удалить push-уведомление,с сервера, после того как он был отправлен?
Если нет, что вы предлагаете в качестве альтернативы для реализации этого поведения?

Спасибо!

1 Ответ

0 голосов
/ 17 декабря 2018

Эй, пожалуйста, проверьте эти шаги. Может быть, это поможет вам для iOS.

Сценарий

- сервер отправит уведомление определенной группе пользователей

-Первый пользователь нажмет на «Уведомление». После этого просто сообщите серверу с помощью API-вызова для получения идентификатора уведомления.(вы можете поместить логику на стороне сервера, поскольку, если пользователь впервые сообщает вам об идентификаторе уведомления, вы можете отправить тихое уведомление всем пользователям, где левый пользователь, который еще не видел уведомления, может удалить все доставленные и ожидающие уведомления со строкой нижекода).

Просто проверьте тип уведомления.Если уведомление молчит, а тип уведомления - Для удаления уведомления с другого пользовательского устройства, просто напишите приведенный ниже код в методе делегата APP didReciveRemortNotification.

application.applicationIconBadgeNumber = 0
   // For Clear Badge Counts
let center = UNUserNotificationCenter.current()
center.removeAllDeliveredNotifications()
   // To remove all delivered notifications
center.removeAllPendingNotificationRequests()
  // To remove all pending notifications which are not delivered yet but scheduled.
...