Implementación de notificaciones push en su aplicación
Hace un par de años, comenzaron a surgir servicios que aportaban la simplicidad de los sistemas de pub/subsistemas típicos a las notificaciones push. En lugar de tener que rastrear manualmente los ID de teléfono de su usuario individualmente, estos servicios le permiten simplemente suscribirse a los usuarios a los canales deseados para recibir notificaciones push.
Por ejemplo, si un usuario desea recibir una notificación cuando se publica un curso sobre Javascript en Thinkster, podríamos suscribirlo a un canal llamado «javascript» al que también podrían suscribirse miles de otros usuarios. Sin embargo, para activar una notificación push a todos estos usuarios solo se necesitaría una línea de código: simplemente publique una notificación push en el canal «javascript» y todos nuestros usuarios la recibirán. Compare esto con consultar su base de datos que contiene los ID de teléfono de su usuario, segmentar qué usuarios desean recibir notificaciones sobre Javascript y, a continuación, enviar notificaciones de forma individual para cada uno de ellos a APNS/GCM. ¡Qué asco!
Hay algunos servicios que ofrecen esta funcionalidad de pub/sub, pero en este momento, recomendamos encarecidamente usar Parse para administrar sus notificaciones push. He aquí por qué: – Es ampliamente adoptado y reforzado por el uso de más de 100,000 aplicaciones – Es gratis enviar un número ilimitado de notificaciones push siempre y cuando tenga < 1 millón de usuarios (!!!) registrado en su aplicación (después de eso, tiene que pagar unos míseros cinco centavos por mil usuarios adicionales): Sus complementos y API son increíblemente fáciles de usar
Haremos una descripción general de un par de otros servicios disponibles para usted más adelante en este curso, pero en general, la configuración de estos diversos servicios es muy similar.
Preparación de su entorno
La otra cosa que debe saber al desarrollar para iOS es que Apple no le permite enviar notificaciones push a aplicaciones que se ejecutan en el emulador; tiene que usar un dispositivo real. Le recomendamos que pruebe cualquier función que invoque la notificación push en el emulador, y luego, cuando se cree su aplicación, deberá cargarla en un dispositivo real para asegurarse de que se reciban realmente las notificaciones push.
Configurando Parse
Para que este proyecto funcione específicamente para su aplicación, necesitamos intercambiar sus claves e identificadores únicos:
En este punto, ¡su proyecto debe poder ejecutarse! En realidad, solo hay dos cosas a las que necesita llamar cuando usa Parse: initialize
, que garantiza que este dispositivo esté registrado para recibir notificaciones push, y subscribe
, que suscribirá este teléfono específico a cualquier canal que proporcione. También hay un tercer método getInstallationId
que devolverá el ID de instalación de este usuario de análisis, pero solo es útil si está profundizando en algunas de las características más avanzadas de análisis.
Tomemos un momento rápido para revisar el código que conecta nuestra aplicación para analizar www/app.js
:
window.parsePlugin.initialize(appId, clientKey, function() { console.log('Parse initialized successfully.'); window.parsePlugin.subscribe('SampleChannel', function() { console.log('Successfully subscribed to SampleChannel.'); window.parsePlugin.getInstallationId(function(id) { // update the view to show that we have the install ID console.log('Retrieved install id: ' + id); /** * Now you can construct an object and save it to your own services, or Parse, and corrilate users to parse installations * var install_data = { installation_id: id, channels: } * */ }, function(e) { console.log('Failure to retrieve install id.'); }); }, function(e) { console.log('Failed trying to subscribe to SampleChannel.'); }); }, function(e) { console.log('Failure to initialize Parse.'); });
Esto no es terriblemente complejo de ver, pero tenga en cuenta que se está ejecutando después de que todas las aplicaciones de Cordova se hayan cargado en $ionicPlatform.ready
. Esto es importante, ya que no queremos llamar a los métodos window.parse
si el complemento de análisis aún no está disponible para nosotros. Otra cosa a tener en cuenta es que este código se disparará cada vez que se abra la aplicación. Puede llamar a initialize
y subscribe
al mismo canal tantas veces como desee sin que ello afecte al usuario, a su cuenta de análisis o a APNS/GCM. De hecho, probablemente sea mejor que lo hagas para asegurarte de que el usuario no desactivó accidentalmente las notificaciones push de tu aplicación desde la última vez que la usó.
Dado que esta aplicación ahora está suscrita al canal de análisis ‘SampleChannel’, eso significa que ahora podemos enviarle notificaciones push. Como se ve en el video de arriba, puede hacer esto a través del panel de análisis Push especificando ‘SampleChannel’ como el objetivo. Sin embargo, si está creando una aplicación lista para producción, probablemente desee enviar notificaciones push mediante programación desde su servidor a través de la API REST de Parse.
El envío de notificaciones push a través de canales no solo es ideal para grupos de usuarios, sino que también puedes usarlo para usuarios individuales. Por ejemplo, puede crear canales únicos mediante programación para cada uno de sus usuarios simplemente suscribiéndolos a un canal con su ID de usuario agregado al final (es decir, window.parsePlugin.subscribe('thinkster-user-' + userID)
). Incluso si sus usuarios inician sesión en dispositivos nuevos, puede continuar enviándoles notificaciones push con solo conocer su ID de usuario.