我想向我的应用的所有用户发送推送通知,这会将他们带到应用中的某个页面。
但是,我只希望一个用户能够点击它并转到页面,当一个用户加载推送他们的页面时,我想静静地删除所有其他用户的推送。
这可能吗?我不知道如何获取所有发送的推送通知,而UNUserNotificationCenter
只抓取在该设备上发送的推送。
先感谢您!
我相信如果您使用静默通知,这是可能的。
type A
的无声通知。type A
通知,并在其UI中创建本地通知。type B
的无声通知。type B
通知,并使用链接代码从他们自己的通知中心丢弃type A
通知。以下是清算通知的相关帖子:
可能的问题/问题:
step 3
和step 6
之间,如果考虑推送时间,可能需要一些时间,因此其他人可能会按下该链接。这不是即时的。在恶劣的网络条件下,这会变得更糟。发送后,您无法删除推送通知。
虽然您可以通过发送另一个推送来将徽章重置为零来更新App徽章。虽然这不会删除之前的推送消息,但它可以隐藏应用程序图标上的红色徽章。
您只需删除通知即可
将徽章计数发送为0
APNS有效载荷将是:
{
"aps" : {
"alert" : "",
"badge" : 0,
"sound" : "bingbong.aiff"
}
}
如果您想删除或减少徽章计数,那么您可以轻松地执行此操作
UIApplication.shared.applicationIconBadgeNumber = max(UIApplication.shared.applicationIconBadgeNumber - 1, 0)
如果您想从通知中心删除单个通知,则可以在UNUserNotificationCenter
及更高版本中使用iOS 10
。
UNUserNotificationCenter
对象管理应用程序或应用程序扩展中的所有与通知相关的行为。
您可以使用以下命令从通知中心删除指定的通知请求:
func removeDeliveredNotifications(withIdentifiers: [String])