仅允许一个用户单击推送通知

问题描述 投票:1回答:4

我想向我的应用的所有用户发送推送通知,这会将他们带到应用中的某个页面。

但是,我只希望一个用户能够点击它并转到页面,当一个用户加载推送他们的页面时,我想静静地删除所有其他用户的推送。

这可能吗?我不知道如何获取所有发送的推送通知,而UNUserNotificationCenter只抓取在该设备上发送的推送。

先感谢您!

ios swift push-notification silent
4个回答
1
投票

我相信如果您使用静默通知,这是可能的。

  1. 发送type A的无声通知。
  2. 所有设备都会收到type A通知,并在其UI中创建本地通知。
  3. 用户按下此本地通知并从服务器加载页面。
  4. 将该用途应用于点击/加载事件将向您的服务器发送一些请求/事件,以便有人访问该链接。
  5. 您的服务器将发送另一个type B的无声通知。
  6. 所有设备都会收到type B通知,并使用链接代码从他们自己的通知中心丢弃type A通知。

以下是清算通知的相关帖子:

可能的问题/问题:

  • 在用户单击step 3step 6之间,如果考虑推送时间,可能需要一些时间,因此其他人可能会按下该链接。这不是即时的。在恶劣的网络条件下,这会变得更糟。
  • 对于在其设备上发出蜂鸣声的用户而言,最后清除通知可能会令人烦恼,因为其他人的速度更快。

0
投票

发送后,您无法删除推送通知。

虽然您可以通过发送另一个推送来将徽章重置为零来更新App徽章。虽然这不会删除之前的推送消息,但它可以隐藏应用程序图标上的红色徽章。


0
投票

您只需删除通知即可

将徽章计数发送为0

APNS有效载荷将是:

{
    "aps" : {
        "alert" : "",
        "badge" : 0,
        "sound" : "bingbong.aiff"
    }
}

0
投票

如果您想删除或减少徽章计数,那么您可以轻松地执行此操作

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

如果您想从通知中心删除单个通知,则可以在UNUserNotificationCenter及更高版本中使用iOS 10

UNUserNotificationCenter对象管理应用程序或应用程序扩展中的所有与通知相关的行为。

您可以使用以下命令从通知中心删除指定的通知请求:

func removeDeliveredNotifications(withIdentifiers: [String])
© www.soinside.com 2019 - 2024. All rights reserved.