繁体   English   中英

从通知中心删除远程通知

[英]Removing Remote Notifications From Notification Center

我需要汇总相同类型的远程通知。

例如 :如果用户收到一个推送通知,说:“用户1对您的帖子发表了评论”,然后又收到了“用户2对您的帖子发表了评论”,那么当我收到第二次推送时,我应该删除第一个通知并创建一个自定义通知,说“ 2位用户对您的信息发表了评论”。


我在userInfo字典中得到了计数器,并且正在使用NotificationService Extension来修改通知的内容。

问题是我要显示2条通知:

  1. “用户1对您的帖子发表了评论”
  2. “其他用户3和2对您的信息发表了评论”

而不只是第二个通知。

我尝试使用自定义标识符初始化UNNotificationRequest,但仍然收到双重通知(原始通知和自定义通知)。

    UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers: ["push.comment"])
    if let username = bestAttemptContent.userInfo["sender"] as? String,
       let count = bestAttemptContent.userInfo["views_counter"] as? Int {
            bestAttemptContent.title = "\(username) and \(count) others  have commented on your post"
    }
    bestAttemptContent.body = "tap to see"
    let request = UNNotificationRequest(identifier: "push.comment", content: bestAttemptContent, trigger: nil)
    UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)

我尝试在通知的有效负载中使用available-content : 1 ,但是当应用终止时(不在后台/前景中),我无法修改通知。

基本上我想要一个类似于Facebook的Messenger应用程序的行为。

有什么建议么?

推送通知分组是Android应用程序中提供的一项功能,但无法在iOS上实现。 因为它应该由操作系统处理(在其他情况下,当应用关闭或最小化时将无法实现),而iOS不提供此支持。

因此,我在Apple文档中读到,在aps对象中设置content-available : 1 ,它将在后台模式下启动应用程序,并且有可能处理收到的无声推送。 重要的是要避免设置mutable-content : 1并在应用程序配置中添加带有远程通知的后台模式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM