我想向我的应用程序的所有用户发送推送通知,以将他们带到应用程序中的特定页面。
但是,我只希望一个用户能够点击它并转到页面,并且当一个用户加载该推送将其带入的页面时,我想从所有其他用户中静默删除该推送。
这有可能吗?我不确定如何抓取所有发送的推送通知,而UNUserNotificationCenter
仅抓取在该设备上发送的推送通知。
提前谢谢!
答案 0 :(得分:1)
我相信,如果您使用静默通知,这是可能的。
opt.on('-s','--service [String]','twitter (tw) or identica (id)') do |val|
的静默通知。 type A
通知,并在其UI中创建本地通知。type A
的静默通知。 type B
通知,并使用链接代码从其自己的通知中心丢弃type B
通知。 以下是有关清除通知的帖子:
您的应用程序的所有通知: iOS application: how to clear notifications?
可能的问题/问题:
在用户点击type A
和step 3
之间,如果您考虑推送时间,可能会花费一些时间,因此其他人可能会按下该链接。不是即时的。在恶劣的网络条件下,这可能会变得更糟。
对于那些在其设备上发出哔哔声并最终清除通知的用户,可能是令人讨厌的,因为其他人的速度更快。
答案 1 :(得分:0)
发送推送通知后,您将无法删除它。
尽管您可以通过发送另一次推送将徽章重置为零来更新App徽章。虽然这不会删除先前的推送消息,但可以在应用程序图标上隐藏红色标志。
答案 2 :(得分:0)
您只需通过
删除通知将徽章计数发送为0
APNS有效载荷将为:
{
"aps" : {
"alert" : "",
"badge" : 0,
"sound" : "bingbong.aiff"
}
}
答案 3 :(得分:0)
如果您要删除或减少徽章计数,则可以轻松完成
UIApplication.shared.applicationIconBadgeNumber = max(UIApplication.shared.applicationIconBadgeNumber - 1, 0)
如果您要从通知中心删除单个通知,则可以使用iOS 10
及更高版本中的UNUserNotificationCenter
。
UNUserNotificationCenter
对象管理应用程序或应用程序扩展中的所有与通知相关的行为。
您可以使用以下方法从通知中心删除指定的通知请求:
func removeDeliveredNotifications(withIdentifiers: [String])