Только один пользователь может нажать Push-уведомление - PullRequest
1 голос
/ 10 апреля 2019

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

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

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

Заранее спасибо!

Ответы [ 4 ]

1 голос
/ 11 апреля 2019

Я считаю, что это возможно, если вы используете тихие уведомления.

  1. Отправить молчаливое уведомление о type A.
  2. Все устройства получают уведомление type A и создают локальные уведомления в своем пользовательском интерфейсе.
  3. Пользователь нажимает это локальное уведомление и загружает страницу с сервера.
  4. Приложение, которое использует событие click / load, отправит некоторый запрос / событие на ваш сервер, чтобы кто-то получил доступ к ссылке.
  5. Ваш сервер отправит еще одно тихое уведомление о type B.
  6. Все устройства получают уведомление type B и используют код ссылок для удаления уведомления type A из своего собственного центра уведомлений.

Вот соответствующие посты клиринговых уведомлений:

Возможные проблемы / проблемы:

  • Между щелчком пользователя step 3 и step 6 может потребоваться некоторое время, если учесть время доставки, поэтому кто-то другой может нажать на ссылку. Это не мгновенно. Это может ухудшиться в плохих условиях сети.

  • Это может раздражать пользователей, которые получают звуковой сигнал на своих устройствах, и уведомление, наконец, сбрасывается, потому что кто-то еще был быстрее.

0 голосов
/ 11 апреля 2019

Если вы хотите удалить или уменьшить количество значков, вы можете легко сделать это с помощью

UIApplication.shared.applicationIconBadgeNumber = max(UIApplication.shared.applicationIconBadgeNumber - 1, 0)

Если вы хотите удалить одно уведомление из центра уведомлений, вы можете сделать это, используя UNUserNotificationCenter в iOS 10 и выше.

UNUserNotificationCenter объект управляет всеми поведениями, связанными с уведомлениями, в приложении или расширении приложения.

Вы можете удалить указанные запросы уведомлений из Центра уведомлений, используя:

func removeDeliveredNotifications(withIdentifiers: [String])
0 голосов
/ 11 апреля 2019

Вы можете просто удалить уведомление по

Отправка значка считается как 0

Полезная нагрузка APNS будет:

{
    "aps" : {
        "alert" : "",
        "badge" : 0,
        "sound" : "bingbong.aiff"
    }
}
0 голосов
/ 11 апреля 2019

Вы не можете удалить push-уведомление после того, как оно было отправлено.

Хотя вы можете обновить значок приложения, отправив еще одно нажатие, чтобы сбросить значок до нуля. Хотя это не удалит предыдущее push-сообщение, оно может скрыть красный значок на значке приложения.

...