【发布时间】:2023-03-10 15:46:01
【问题描述】:
我正在尝试在我的应用中折叠/合并属于同一事件的多个通知。 iOS 10 在有效负载中引入了一个键名 apns-collapse-id。文档说具有相同apns-collapse-id 的多个远程通知将合并并显示为单个通知。
所以我们的通知负载中有apns-collapse-id 和thread-id 的负载。不幸的是,由于网上没有太多内容解释这些键的实际工作原理,为了安全起见,我们为apns-collapse-id 和thread-id 使用了相同的唯一值。
我们期望多个具有相同apns-collapse-id 的远程通知合并。它没有发生。
很少有人建议 APNS 崩溃不是免费的,我必须实现 UNNotificationContentExtension 并手动处理通知。我知道我可以添加和删除已发布的本地通知,但不确定如何更新已发布的远程通知。
这是我们的有效载荷的样子
payload {
"aps": {
"alert": {
"title": "Some title : ",
"body": "Some body text"
},
"sound": "default",
"payload": {
"target": {
"some key" : "Some value"
},
"thread_id": "Some_string_155863",
},
"apns-collapse-id": "Some_string_155863",
"mutable-content": 1,
"thread-id": "Some_string_155863",
"badge": 33
},
"thread-id": "Some_string_155863",
"apns-collapse-id": "Some_string_155863",
"mutable-content": 1
}
您可以看到 apns-collapse-id 和 thread-id 在 JSON 中重复多次,因为我们不确定它们的确切位置
我们还没有使用 HTTPS/2,但我相信 iOS 10 通知仍然支持旧的 HTTPS。我不是一个真正的网络人,所以我不完全理解这些事情。忽略我对 Https 和 Http2 的傲慢
有没有人设法让 apns-collapse-id 工作?请帮忙。
【问题讨论】:
-
我也遇到了同样的问题。你解决了这个问题吗??如果是这样的意思,请解释你是如何解决这个问题的。提前致谢!
-
@nandhakumar :我们唯一改变的是从 HTTPS 迁移到 HTTP/2 版本,一切都开始像魅力一样工作。我已经在苹果的雷达中提出了同样的问题。他们还没有回应。我问苹果的工程师,他说它也应该与传统的 HTTPS 一起使用。我无法让它与 HTTPS 一起使用。所以你最好的选择是我相信 HTTP/2
-
@nandhakumar : 苹果人回复说“apns-collapse-id 仅在 HTTP/2 中受支持,该字段应位于标头而不是有效负载中。”
标签: ios apple-push-notifications ios10