我正在使用的iOS应用程序使用推送通知来传递用户可以在消息中心查看的消息。这些消息在aps字典之外具有一组自定义键,我们使用它们来提供不同的处理方式,等等。但是,如果用户未点击通知,则该消息将永远不会出现在应用程序中(服务器端消息尚不可用) )。

因此,我们开始将content-available添加到aps词典中,以便应用程序可以使用有效负载并在消息中心准备消息:设备仍会收到通知,但是如果他们打开应用程序而不点击通知,则消息可用。在实践中,这一直很好。

看来documentation(配置后台更新通知部分,现已存档)对此提供了支持,但是现在current docs说“要发送后台通知,请使用仅包含内容可用密钥的aps字典创建远程通知。 ....您可以在有效负载中包括自定义键,但是aps字典中不得包含任何会触发用户交互的键。”导致该结果的documentation page表示content-available,“后台通知标志。要执行静默后台更新,请指定值1,并且有效载荷中不包括警报,徽章或声音键。”

我猜我们正在尝试做的事情可以称为“嘈杂的背景通知”,该通知可以在后台更新应用程序,并且仍然具有面向用户/交互的内容。

content-available词典中的alertaps互斥键吗?

谢谢!

最佳答案

在我看来,其目的是使它们相互排斥。例如,请参见:
https://onesignal.com/blog/ios-13-introduces-4-breaking-changes-to-notifications/

和/或研究新的apns-push类型的标头,该标头必须为“警报”或“背景”。

您是否考虑过使用后台模式来处理后台所需的内容,同时让您的应用程序代码基于可以传递给本地设备的有效负载创建UserNotification,从而获得用户可见的警报?

08-18 05:52