WhatsApp 如何加密 iOS 上的推送通知?

How can WhatsApp encrypt Push Notifications on iOS?

最近 WhatsApp integrated the Signal protocol 用于所有平台的端到端加密。

我和朋友试了一下,说是激活了加密。 在 iOS 8 关闭应用程序并禁用后台任务后,我朋友的推送通知仍然显示消息。

问题: WhatsApp 会加密 APNS 消息吗?如果是,他们如何显示文本? iOS 上有处理推送通知的方法吗?

提前致谢!

WhatsApp 可以使用 VoIP 后台模式和 PushKit 来解决这个问题。

VoIP 推送是:

  • 直接传送到应用程序。
  • 被认为是高优先级通知,并且会立即传送。
  • 即使应用程序被用户强制退出,也会交付。

详情参考Voice Over IP (VoIP) Best Practices

一旦 VoIP 推送的加密负载被解密,他们就会显示带有解密消息的“本地通知”。

不过有一个小问题,PushKit 仅在 iOS 8 及更高版本上可用。那么,对于 iOS 的早期版本,Whatsapp 是如何做到的呢? 好吧,事实并非如此。他们不允许您在 iOS 8 之前的版本的通知中看到消息预览(已在 iOS 7 上验证,请参见屏幕截图)