studio programacion para libros libro edición desarrollo desarrollar aprende aplicaciones android ios push-notification notifications apple-push-notifications

android - programacion - Sepa si la aplicación recibió la notificación del lado del servidor



manual de programacion android pdf (7)

Estoy construyendo una aplicación similar a un periódico y me gustaría saber cuántas personas recibieron la notificación push del artículo frente a cuántos lo leyeron realmente .

Estaba pensando en implementar una forma en la que cuando se recibe la notificación, la aplicación se despierta y envía una solicitud al servidor diciendo " Hola, soy _____, recibí la notificación del artículo ____ " y la almacenaba en la base de datos. . Luego, luego, si el usuario hace clic en la notificación y va a leer el artículo, le envío otra solicitud que dice " Hola, soy ____ y ​​leí el artículo _____ " y también lo guardo en la base de datos. Luego, con algunas consultas, puedo entender el porcentaje de lectura / recepción.

No entiendo si es posible incluso reactivar la aplicación, incluso si el usuario no la abrió en un momento y enviar una solicitud al servidor (para el fondo significa que la aplicación no se inició o que está en el caché). ?).

Me gustaría lograr lo que hicieron con Whatsapp:

  • Recibo un nuevo mensaje en Whatsapp
  • No abro la aplicación
  • Voy a la Web de WhatsApp
  • Abro la conversación en la Web de WhatsApp
  • La placa y la notificación en el teléfono desaparecen porque lo leí en otro lado

Creo que esa característica se logra con notificaciones automáticas silenciosas que solo actualizan la insignia de la aplicación y borran la notificación de lectura.


Desea sincronizar su aplicación con la aplicación web o el sitio web una vez que envía una notificación a la aplicación que establecer la notificación a una ID particular. Si el usuario lee ese mensaje desde su web, envíe notificaciones push otra vez con diferentes mensajes y manipular servicio o receptor de difusión. cancelar la notificación si el mensaje recibido contiene un mensaje diferente. También puede usar Notification Listener. Consulte este enlace

Consulte este enlace para ios.


Esa es una muy buena pregunta sobre cómo implementar tales notificaciones silenciosas. Aquí hay algunas variables que debemos considerar y tratar de una manera diferente.

Notificaciones push enviadas a los usuarios : algunas de ellas la habrían recibido, es posible que algunas no la hayan recibido.

Presionando múltiples notificaciones al mismo usuario en una pequeña cantidad de tiempo : aquí es difícil hacer un seguimiento del usuario de la notificación exacta que abrió la aplicación. Porque el usuario puede haber leído todas las noticias que recibieron notificaciones en un solo intento.

El contenido real que se muestra al usuario en la aplicación : el usuario puede haber abierto la aplicación debido a las notificaciones. Algunas veces pudo haber visto las notificaciones y luego abrir la aplicación directamente sin interactuar con las notificaciones.

Así que así es como puede ser la implementación.

  1. Implementar notificaciones push para la aplicación
  2. El usuario recibe las notificaciones push y la insignia de notificación muestra el Número (1).
  3. Ahora cuando el usuario ve la misma noticia en cualquier otro medio (su propia aplicación Mac o aplicación para PC). El servidor recibe una notificación de la acción de los usuarios y las noticias que él / ella / quien acaba de leer.
  4. Ahora el servidor sabe que ha enviado una notificación y no se lee. Cuando recibe la notificación de lectura, puede enviar una notificación remota que la aplicación puede gestionar en segundo plano y actualizar la insignia.

Consulte este enlace para obtener más información sobre cómo manejar las notificaciones en varios modos.

La documentación de Apple también se puede consultar aquí para el modo en segundo plano: notificación remota.

Por lo tanto, harás que tu aplicación se ejecute en segundo plano con ciertas configuraciones para responder a las notificaciones silenciosas y actualizar la insignia al igual que WhatsApp. Espero que esto ayude.


Hola @Smile Applications después de leer su pregunta, le sugiero que vea el sitio web de OneSignal . OneSignal le permitirá enviar notificaciones a sus usuarios suscritos. También le mostrará cuántos usuarios están usando su aplicación y cuántos de ellos han recibido sus notificaciones. Si desea enviar notificaciones y rastrearlas desde la propia aplicación, puede usar su API . Es fácil y lo he implementado en Android y pronto lo implementaré en IOS.

Ahora, la segunda parte de su pregunta sobre cómo saber cuántos usuarios han leído / abierto su notificación y en qué actividad están, puede usar Google Analytics . Le permitirá ver desde qué parte del mundo sus usuarios utilizan su aplicación y qué actividades de su aplicación se están abriendo más. También es fácil y lo he implementado también en Android y pronto también lo implementaré en iOS.


No sé sobre la notificación de Apple, no sé cómo saber cuántos usuarios recibieron su notificación. Pero conozca una manera de averiguar cómo lo leyeron. enviar enlace para enlace de imagen de 1X1 píxel. cuando abre la notificación cargar ese enlace de imagen (oculto, no tomará ningún dato considerable porque es solo 1X1 píxel) como

www.yoursite.com/loadArticleImg?AId=articleId&userId=userId

en el lado del servidor, guarde articleId con userId y devuelva imgData (1X1), funcionará


Respuesta del Soporte Técnico del Desarrollador de Apple:

Hola Matteo,

Gracias por contactar al Soporte técnico para desarrolladores de Apple (DTS). Nuestros ingenieros han revisado su solicitud y han llegado a la conclusión de que no existe una forma admitida de lograr la funcionalidad deseada dadas las configuraciones del sistema de envío actualmente.

Entonces al final de los juegos NO ES POSIBLE


Ya lo he implementado en una de mis aplicaciones, y en realidad es complicado. Tendrás muchos casos de uso para manejar.

  • Lo primero (pero parece que ya lo sabe): Apple no proporciona ninguna devolución de llamada para decir: "se envió esta notificación"

  • Lo segundo: cuando se mata tu aplicación (ni siquiera en segundo plano), no se puede hacer nada con tu notificación , lo que significa que tu aplicación no podrá despertarse y leer la notificación, y por lo tanto hacer algo. Lo único que puede hacer es cambiar el número de la credencial, incluso si se mata su aplicación.

  • Tercero: cuando su aplicación está en segundo plano, puede activar su aplicación durante 30 segundos. Durante ese tiempo, puede enviar una solicitud al servidor, pero si se demora demasiado, el sistema destruirá el proceso.

Diciendo eso, aquí hay una explicación rápida de cómo podría implementar el sistema:

  1. Necesitará del lado del servidor para guardar en su base de datos las notificaciones que se enviaron. Tan pronto como se envíen, guárdelos como "pendientes"
  2. En el lado de la aplicación: si su aplicación está en segundo plano , tan pronto como se reciba la notificación, puede reactivarla para enviar una solicitud al servidor. Luego, en su base de datos, su estado de notificación cambiará a "recibir" o "notificado". Si su aplicación fue eliminada , cuando el usuario lance su aplicación, envíe una solicitud al servidor para solicitar todas las notificaciones en estado "pendiente", de esa manera su aplicación estará actualizada, así como su número de placa.
  3. Si el usuario hace clic en la notificación, esto abrirá su aplicación directamente en el artículo, de esa manera podrá enviar una solicitud y decir a su servidor que el artículo fue recibido y leído.
  4. Si el usuario lee su artículo en el lado web, envíe una notificación. Establezca el número de la insignia de notificación con el número de notificación "pendiente" real en su base de datos.

Espero que esto te ayude además de la respuesta de @Prav :)