Compatibilidad

Resultado del laboratorio de compatibilidad: frameworks, plataformas, modos de iOS y tipos de notificación.

PushHub prueba cada framework en dos niveles:

  • Automático, en cada versión del servidor o de un SDK. El servidor envía a un simulador de FCM y APNs, y se verifica el payload exacto que recibiría el dispositivo. También se prueba que el SDK de cada framework lo interpreta igual (id, deep link, botones, multimedia y datos).
  • En dispositivos reales: Android físico, iPhone con compilación de Xcode (sandbox) y TestFlight (production), con la app en primer plano, en segundo plano y cerrada.

Última ejecución automática: 2026-10-25 — 120 de 120 casos correctos (1220 verificaciones).

Verificación automática

Tipos: visible (con texto, botones, deep link, datos e imagen), datos (data_only: el texto viaja en data) y silenciosa (silent).

Framework Android (FCM) iOS (APNs directo) iOS (vía FCM) Installation ID (FID)
Nativo (Android / iOS) · SDK oficial ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa
Nativo (Android / iOS) · sin SDK (REST) ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa — —
Ionic + Capacitor · SDK oficial ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa — —
Ionic + Capacitor · sin SDK (REST) ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa — —
Cordova · SDK oficial ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa —
Cordova · sin SDK (REST) ✔ visible, datos, silenciosa — ✔ visible, datos, silenciosa —
Flutter · SDK oficial ✔ visible, datos, silenciosa — ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa
Flutter · sin SDK (REST) ✔ visible, datos, silenciosa — ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa
React Native · SDK oficial ✔ visible, datos, silenciosa — ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa
React Native · sin SDK (REST) ✔ visible, datos, silenciosa — ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa
Expo · SDK oficial ✔ visible, datos, silenciosa — ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa
Expo · sin SDK (REST) ✔ visible, datos, silenciosa ✔ visible, datos, silenciosa — —

«—» significa que esa integración no produce ese tipo de token: por ejemplo, firebase_messaging siempre entrega FCM en iOS.

Installation ID (FID): los SDK de Firebase recientes reemplazan el token de registro por el Firebase Installation ID. PushHub lo reconoce y lo envía en message.fid. La columna resume Android e iOS vía FCM en las integraciones que ya pueden usarlo.

En cada caso se verifica:

  • proveedor y entorno de APNs;
  • _phid y _ph;
  • claves planas según el perfil de payload;
  • texto, botones traducidos, categoría y mutable-content en iOS;
  • imagen nativa (Android y fcm_options), canal y prioridad;
  • tamaño menor de 4 KB.

Qué cubre cada integración

Integración Con la app abierta Botones Imágenes Aperturas y clics
SDK oficial Sí Android con la app abierta; iOS con la extensión Sí (iOS con la extensión) Automático
Sin SDK (REST) Depende del plugin Implementación propia Android sí; iOS con extensión propia Llamar a /v1/events

Perfiles de payload

Sin SDK, cada plugin lee los datos de forma distinta. PushHub ajusta el payload según el framework de la app. Con un SDK oficial, el dispositivo recibe solo _phid y _ph.

Perfil Claves planas Texto en mensajes de solo datos
SDK oficial ninguna title, body
Capacitor, Flutter, React Native, nativo, otros deepLink, imageUrl title, body
Cordova deepLink, imageUrl, image title, message
Expo deepLink, imageUrl title, message

Pruebas en dispositivos reales

Notificación visible en cada estado de la app.

Framework Android 1.er plano Android fondo Android cerrada iOS 1.er plano iOS fondo iOS cerrada
Nativo (Android / iOS) · SDK oficial pendiente pendiente pendiente pendiente pendiente pendiente
Nativo (Android / iOS) · sin SDK (REST) pendiente pendiente pendiente pendiente pendiente pendiente
Ionic + Capacitor · SDK oficial pendiente pendiente pendiente pendiente pendiente pendiente
Ionic + Capacitor · sin SDK (REST) pendiente pendiente pendiente pendiente pendiente pendiente
Cordova · SDK oficial pendiente pendiente pendiente pendiente pendiente pendiente
Cordova · sin SDK (REST) pendiente pendiente pendiente pendiente pendiente pendiente
Flutter · SDK oficial pendiente pendiente pendiente pendiente pendiente pendiente
Flutter · sin SDK (REST) pendiente pendiente pendiente pendiente pendiente pendiente
React Native · SDK oficial pendiente pendiente pendiente pendiente pendiente pendiente
React Native · sin SDK (REST) pendiente pendiente pendiente pendiente pendiente pendiente
Expo · SDK oficial pendiente pendiente pendiente pendiente pendiente pendiente
Expo · sin SDK (REST) pendiente pendiente pendiente pendiente pendiente pendiente

¿Tu framework no aparece? Cualquier app que obtenga un token de FCM o APNs funciona por REST.