APNS aps 字典中的内容可用和警报互斥键

Are content-available and alert mutually exclusive keys in an APNS aps dictionary

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

所以我们开始将 content-available 添加到 aps 字典中,这样应用程序就可以使用负载并在消息中心准备消息:设备仍然会收到通知,但现在如果他们打开应用程序而无需点击通知。这在实践中一直很有效。

这似乎在 documentation (Configuring a Background Update Notification section, now archived) but now current docs say "To send a background notification, create a remote notification with an aps dictionary that includes only the content-available key.... You may include custom keys in the payload, but the aps dictionary must not contain any keys that would trigger user interactions." And the documentation page 中得到了支持,导致关于 content-available、“ 后台通知标志。要执行静默后台更新,请指定值1 并且不要在您的有效负载中包含警报、徽章或声音键。"

我想我们正在尝试做什么,您可以调用嘈杂的背景通知,它会在后台更新应用程序并且仍然有用户 facing/interactive 内容。

content-availablealert 字典中的 aps 键是否互斥?

谢谢!

在我看来,意图是使这些相互排斥。例如,参见: https://onesignal.com/blog/ios-13-introduces-4-breaking-changes-to-notifications/

and/or 研究新的 apns-push-type header 必须是 "alert" 或 "background".

您是否考虑过使用后台模式在后台处理您需要的内容,同时让您的应用程序代码基于可以传送到本地设备的相同有效负载创建 UserNotification,以获取 user-visible警报?