WhatsApp ha implementato la crittografia end-to-end ( whitepaper ) nel loro ultimo aggiornamento.
Come è possibile che WhatsApp invii notifiche push con i contenuti dei messaggi al servizio di notifica push di Apple?
Una possibile soluzione sarebbe quella di inviare il messaggio non crittografato agli APN dall'app stessa, ma questo sarebbe soggetto ad abuso e vanificherebbe lo scopo della crittografia end-to-end.
Aggiornamento:
L'ho appena testato un po 'di più, secondo la documentazione di Apple:
However, the system does not automatically launch your app if the user has force-quit it. In that situation, the user must relaunch your app or restart the device before the system attempts to launch your app automatically again.
Che ho testato, e mi ha portato ancora a ricevere le notifiche push in testo normale. Ciò mi indurrebbe a credere che l'app non sia in esecuzione in background per decrittografare tutte le notifiche ricevute e quindi ripubblicarle.
Aggiornamento a maggio 2017:
Ora ho utilizzato l'API VoIP (come menzionato nelle risposte di seguito) per ottenere effettivamente lo stesso risultato in un'app demo. Funziona molto bene.
Aggiornamento luglio-2017:
Apple non consente più l'utilizzo dell'API per le notifiche push di app non VoIP. Tuttavia, consentono a WhatsApp di farlo nella loro infinita correttezza.
Aggiornamento settembre 2018:
Ora è possibile utilizzare un'estensione dell'applicazione di notifica per decrittografare le notifiche push. Tuttavia, le librerie dinamiche sono scoraggiate dall'uso in tali estensioni quindi devi avere una base di codice che può essere compilata staticamente per la decrittazione, ecc.