- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
大约在去年第三季度,我能够使用 UNNotificationServiceExtension
不仅解密传入的推送通知内容(常见用例),而且每次收到新通知时都能删除以前发送的通知到了。
我使用 UNUserNotificationCenter.current().getDeliveredNotifications
检索已发送的通知,然后删除我需要删除的通知。
然而,随着新的一年的临近,我突然注意到我的应用程序不再从通知中心删除以前发送的通知,尽管代码仍然存在于服务扩展中并且没有抛出任何错误,尽管其他服务扩展中的代码工作正常。
在调试时,我发现 UNUserNotificationCenter.current().getDeliveredNotifications
现在会返回一个空的通知数组,即使在锁定屏幕上传送了多个通知也是如此。
UNUserNotificationCenter.current().removeAllDeliveredNotifications()
什么都不做,所以即使只是使用那个调用,不检索或过滤传递的通知,也不会删除任何东西。
有谁知道是否还有办法做到这一点?
或者 Apple 是否可以禁止此功能?
最佳答案
似乎 apns-collapse-id
APNs 请求 header 在这里可能很有用。
可用于更新之前的通知内容,并将其置于顶部。
Multiple notifications with the same collapse identifier are displayed to the user as a single notification.
根据 docs , apns-collapse-id
指定通知 identifier
(通常是随机的)。 BE 可以在有效载荷中发送具有给定 ID 的新“删除”通知,以在 removeDeliveredNotifications(withIdentifiers:)
函数中使用它。
关于swift - 有没有办法在新通知到达时删除已发送的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54565979/
我是一名优秀的程序员,十分优秀!