这是docs所说的:
通知的优先级。指定以下值之一:
10 - 立即发送推送消息。具有此优先级的通知必须在目标设备上触发警报,声音或徽章。将此优先级用于仅包含
content-available
密钥的推送通知是错误的。5 - 在考虑设备电源注意事项的时间发送推送消息。具有此优先级的通知可能会分组并以突发方式传递。它们被限制,在某些情况下不会被交付。
关于VoIP:
开发人员应该使用PushKit框架API,而不是持久连接,这些API允许应用程序从远程服务器接收推送(数据可用时的通知)。每当收到推送时,应用程序就会被激活。例如,VoIP应用程序可以在收到呼叫时显示警报,并提供接受或拒绝呼叫的选项。如果用户决定接受,它甚至可以开始采取前驱步骤来发起呼叫。
我是否正确理解apns-priority
在APNS端定义了消息队列,而VoIP推送类型定义了设备上发生的事情?
那是什么意思呢
将此优先级用于仅包含
content-available
密钥的推送通知是错误的。
APNS会返回错误还是仅仅是一种不好的做法?
附:我使用AWS SNS发送通知,它不支持apns-priority
的自定义,但我很好奇它是如何影响流程的。
主要区别在于,即使您的应用程序已关闭,voip通知也可以唤醒您的应用程序以获取终止/暂停状态,用户通知只会显示警报而不会唤醒您的应用以获取更多参考。 Apple documentation for pushkit
主要区别在于VoIP notification
将启动您的应用程序,如果它没有运行或被从应用程序切换器中杀死,您需要在代码中处理通知,而normal notification
将立即显示为本地通知,并且不会启动您的应用程序。