gpt4 book ai didi

swift - 有没有办法在新通知到达时删除已发送的通知?

转载 作者:可可西里 更新时间:2023-11-01 01:07:33 26 4
gpt4 key购买 nike

大约在去年第三季度,我能够使用 UNNotificationServiceExtension 不仅解密传入的推送通知内容(常见用例),而且每次收到新通知时都能删除以前发送的通知到了。

我使用 UNUserNotificationCenter.current().getDeliveredNotifications 检索已发送的通知,然后删除我需要删除的通知。

然而,随着新的一年的临近,我突然注意到我的应用程序不再从通知中心删除以前发送的通知,尽管代码仍然存在于服务扩展中并且没有抛出任何错误,尽管其他服务扩展中的代码工作正常。

在调试时,我发现 UNUserNotificationCenter.current().getDeliveredNotifications 现在会返回一个空的通知数组,即使在锁定屏幕上传送了多个通知也是如此。

UNUserNotificationCenter.current().removeAllDeliveredNotifications() 什么都不做,所以即使只是使用那个调用,不检索或过滤传递的通知,也不会删除任何东西。

有谁知道是否还有办法做到这一点?

或者 Apple 是否可以禁止此功能?

最佳答案

似乎 apns-collapse-id APNs 请求 header 在这里可能很有用。

  1. 可用于更新之前的通知内容,并将其置于顶部。

    Multiple notifications with the same collapse identifier are displayed to the user as a single notification.

  2. 根据 docs , apns-collapse-id 指定通知 identifier(通常是随机的)。 BE 可以在有效载荷中发送具有给定 ID 的新“删除”通知,以在 removeDeliveredNotifications(withIdentifiers:) 函数中使用它。

关于swift - 有没有办法在新通知到达时删除已发送的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54565979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com