微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UNNotificationServiceExtension 修改或删除已发送的推送通知

如何解决UNNotificationServiceExtension 修改或删除已发送的推送通知

我正在使用 linphone 开发 iOS 门铃应用程序。当有人按铃且 iOS 应用未激活时,手机上会显示一条推送通知,您可以点击它,应用会打开,您可以接听门铃。

现在,想象一小时后看到推送通知。门口没有人了,所以一旦门铃停止响起,我想删除或更新推送通知。 在我的 unnotificationserviceextension 中,我知道 sip 呼叫何时被释放,因此我希望那时删除通知

然而,似乎一旦我显示有人在门口的通知,我就无法再呼叫 removeAllDeliverednotifications

所以,这是有效的:

UNUserNotificationCenter.current().removeAllDeliverednotifications()
dispatchQueue.main.asyncAfter(deadline: .Now() + 1) {
    contentHandler(bestAttemptContent)
}

这不会:

contentHandler(bestAttemptContent)
UNUserNotificationCenter.current().removeAllDeliverednotifications()

当然,我想在显示通知并给用户一些时间点击后删除通知。有没有办法来解决这个问题?对我来说,另一个选择是能够将已经发送的推送通知更新为“有人在你家门口”或其他内容

我希望能够在 serviceExtensionTimeWillExpire 中执行此操作,但鉴于我已经调用contentHandler(bestAttemptContent),我不能再这样做了。

有什么想法吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。