WhatsApp在其最新更新中实施了端到端加密(白皮书)。
WhatsApp 如何将带有消息内容的推送通知发送到 Apple 推送通知服务?
一种可能的解决方案是从应用程序内部将未加密的消息发送到 APN,但这很容易被滥用,并且会破坏端到端加密的目的。
更新:
根据 Apple 的文档,我刚刚对其进行了更多测试:
但是,如果用户强制退出,系统不会自动启动您的应用程序。在这种情况下,用户必须重新启动您的应用程序或重新启动设备,然后系统才会再次尝试自动启动您的应用程序。
我对其进行了测试,结果我仍然收到纯文本推送通知。这会让我相信该应用程序没有在后台运行以解密收到的任何通知然后重新发布它们。
2017 年 5 月更新:
我现在已经使用 VoIP API(如下面的答案中所述)在演示应用程序中自己有效地实现了相同的结果。效果很好。
2017 年 7 月更新:
Apple 不再允许将 API 用于非 VOIP 应用程序的推送通知。但是,他们确实允许 WhatsApp 以无限公平的方式进行操作。
2018 年 9 月更新:
现在可以使用通知应用程序扩展来解密推送通知。但是,不鼓励在此类扩展中使用动态库,因此您必须拥有可以静态编译以进行解密等的代码库。