Configuración de notificaciones push en iOS

Introducción

Apple introdujo originalmente notificaciones push para permitir que las aplicaciones respondan a eventos si la aplicación no se está ejecutando en primer plano. Sin embargo, el sistema operativo y los dispositivos iOS han cambiado significativamente durante los últimos años y las aplicaciones no tienen que depender únicamente de las notificaciones push para realizar tareas en segundo plano.

Sin embargo, esto no significa que las notificaciones push ya no sean útiles. Las notificaciones push son excelentes para notificar a una aplicación sobre eventos importantes y para mantener a los usuarios de su aplicación interesados. Además, no olvide que una aplicación aún no puede ejecutarse en segundo plano sin restricciones. En otras palabras, el propósito original de las notificaciones push sigue siendo válido.

Incluso los desarrolladores de iOS más experimentados se rascan la cabeza de vez en cuando cuando tienen que lidiar con el aprovisionamiento de aplicaciones. Desafortunadamente, las notificaciones push se suman a esta complejidad. Con este tutorial, espero mostrarle que configurar notificaciones automáticas no debería ser una pesadilla. Síguelo y le prometo que enviará notificaciones automáticas de inmediato..

Si está buscando una solución rápida, puede probar AZNotification: Notificaciones para iPhone en Envato Market, que le permite crear fácilmente notificaciones atractivas en ningún momento. Las notificaciones caen de la barra de navegación y pueden mostrar mensajes informativos y de error. O contrata a un desarrollador de la aplicación Envato Studio para que te ayude.

AZNotification: Notificaciones para iPhone 

1. Requisitos previos

Necesitarás dos cosas si quieres seguir conmigo. Lo primero que necesita es un dispositivo físico para recibir notificaciones de inserción, ya que el simulador de iOS no admite notificaciones de inserción. Lo segundo que necesitas es una cuenta de desarrollador de iOS paga. Solo las cuentas pagadas pueden aprovisionar aplicaciones para que se ejecuten en un dispositivo físico.

2. Configuración del proyecto

El objetivo de este tutorial es crear una aplicación que esté configurada para recibir notificaciones push. Abra Xcode y cree un nuevo proyecto basado en el Solicitud de vista única modelo.

Nombra el proyecto empujar, ingrese un identificador de empresa y un prefijo de clase, y establezca Dispositivos a iPhone.

3. Inscripción

A pesar de que no hablaré sobre la infraestructura de back-end de las notificaciones push, es importante que sepa y entienda lo que debe hacer su aplicación para recibir notificaciones push y por qué lo hace..

Abierto TSPAppDelegate.m y actualizar el aplicación: didFinishLaunchingWithOptions: Como se muestra abajo. Nosotros llamamos registerForRemoteNotificationTypes: sobre el solicitud objeto, pasando los tipos de notificación que nos interesan. El sistema operativo ahora sabe que la aplicación está interesada en recibir notificaciones push.

- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions // Registrarse para notificaciones remotas [application registerForRemoteNotificationTypes | (UIRemoteNotificationTypeAlert) devuelve SÍ; 

El sistema operativo contacta con los servidores de Apple y obtiene un token de dispositivo para identificar de forma única el dispositivo en el que se está ejecutando la aplicación. Este token de dispositivo es utilizado por la infraestructura de su servidor para enviar notificaciones push. Para ello, envía el token del dispositivo junto con la notificación de inserción real a los servidores de Apple. Los servidores de Apple se encargan de distribuir las notificaciones push a los dispositivos apropiados.

Tenga en cuenta que el token del dispositivo es diferente para cada aplicación e incluso puede cambiar con el tiempo para la misma aplicación. Por lo tanto, Apple recomienda solicitar un token de dispositivo cada vez que se inicie la aplicación y enviar el token del dispositivo a su servidor para asegurarse de que el token del dispositivo esté actualizado..

Si está utilizando un servicio como Parse o Urban Airship, entonces esto es algo de lo que no tiene que preocuparse. En ese caso, solo necesita enviar el token al dispositivo que el token iOS le entrega..

Los métodos que le indican a su aplicación si el registro para notificaciones remotas es exitoso o no son: aplicación: didRegisterForRemoteNotificationsWithDeviceToken:aplicación: didFailToRegisterForRemoteNotificationsWithError: respectivamente. Por ahora, implemente estos métodos como se muestra a continuación..

- (void) application: (UIApplication *) application didRegisterForRemoteNotificationsWithDeviceToken: (NSData *) deviceToken NSLog (@ "Se registró para notificaciones remotas con token de dispositivo (% @)", deviceToken); 
- (void) application: (UIApplication *) didFailToRegisterForRemoteNotificationsWithError: (NSError *) error NSLog (@ "No se pudo registrar para notificaciones remotas"); NSLog (@ "% @,% @", error, error.localizedDescription); 

Ambos métodos son declarados por la UIApplicationDelegate protocolo. Este protocolo también declara otro método., aplicación: didReceiveRemoteNotification:, que se invoca cuando la aplicación recibe una notificación remota. Depende de usted manejar las notificaciones push entrantes. los aplicación: didReceiveRemoteNotification: El método le entrega la carga útil de la notificación push como un NSDiccionario objeto. Su aplicación debe decidir cómo debe responder a la notificación de inserción.

Si ejecuta su aplicación, entonces la aplicación: didFailToRegisterForRemoteNotificationsWithError: Se invocará el método. Esto no es sorprendente ya que no hemos terminado de configurar nuestra aplicación para notificaciones push. Como recordatorio, las notificaciones remotas no son compatibles con el simulador de iOS. Necesitarás un dispositivo físico para completar este tutorial..

4. Certificado SSL

Para completar el siguiente paso, debe iniciar sesión en su cuenta de desarrollador de iOS en el Centro de desarrollo de iOS de Apple. Escoger Identificadores desde el aplicaciones iOS secciones.

Haga clic en el botón más en la esquina superior derecha e ingrese un App ID Descripción. Esto le ayuda a identificar la ID de la aplicación más adelante.

Puedes dejar el Prefijo de ID de aplicación como es, pero el Sufijo de ID de aplicación necesita ser configurado para ID de aplicación explícita, en lugar de ID de aplicación de comodín. Si desea que una aplicación reciba notificaciones remotas, debe utilizar un ID de aplicación explícita, como com.tutsplus.push, en lugar de com.tutsplus. *.

En la sección Servicios de aplicaciones, habilitar Notificaciones push. Hacer clic Continuar para enviar el formulario y hacer clic Enviar para crear la ID de la aplicación.

En la lista de ID de aplicaciones, seleccione la que acaba de crear y haga clic en Editar botón debajo de él. Desplácese hacia abajo hasta que vea la sección que cubre las notificaciones push. Deberías ver dos botones etiquetados Crear certificado ...  Como se muestra abajo.

Como mencioné anteriormente, su backend se comunica con los servidores de Apple para enviar notificaciones remotas a su aplicación. Su backend envía notificaciones remotas a su aplicación a través de los servidores de Apple. Por esta razón, Apple necesita saber que solo sus servidores pueden conectarse con sus servidores. No quieres que otra persona envíe notificaciones remotas a tu aplicación.

Por lo tanto, Apple requiere que crees un certificado SSL. Muchos desarrolladores se estremecen ante las palabras "certificados" y "aprovisionamiento", pero en realidad no es tan difícil. Sigue y estarás listo en menos de dos minutos..

Abierto Acceso Llavero en su máquina de desarrollo y seleccione Asistente de certificados> Solicitar un certificado de una autoridad de certificados ... desde el Acceso Llavero menú. Vuelva a comprobar que no se haya seleccionado ninguna tecla en Acceso Llavero cuando selecciona esta opción.

Introduzca una dirección de correo electrónico y un Nombre común Para identificar el certificado más adelante. Dejar el Correo electrónico de CA campo vacío y seleccione Guardado en el disco. Hacer clic Continuar y guarda el Solicitud de firma de certificado a su disco duro..

Has creado algunas cosas al completar este paso. Ha creado una solicitud de firma de certificado, así como una clave pública y privada. Las llaves deben ser visibles en Acceso Llavero Como se muestra abajo.

Vuelve al Centro de desarrollo de iOS y haz clic en Crear certificado ... Botón que vimos anteriormente. Apple le dice qué pasos debe seguir para crear la solicitud de firma de certificado, pero ya los hemos completado. Hacer clic Continuar, subir la solicitud de firma de certificado haciendo clic en el Elija el archivo… botón, y pulsa Generar para generar el certificado SSL.

Como Apple lo indica, descargue el certificado y haga doble clic para instalarlo en Acceso Llavero. Vuelva a comprobar que el certificado se agrega a Acceso Llavero y vinculado a la clave privada correcta.

El siguiente paso, el aprovisionamiento de aplicaciones, es algo que hace tropezar a muchos desarrolladores. Déjame guiarte a través de esto.

5. Aprovisionamiento de aplicaciones

Antes de que podamos probar nuestra configuración de notificaciones push, debemos crear un perfil de aprovisionamiento para nuestra aplicación. En el Centro de desarrollo de iOS, selecciona Desarrollo en el Perfiles de aprovisionamiento sección. Haga clic en el botón más en la parte superior derecha y seleccione Desarrollo de aplicaciones iOS bajo la Desarrollo sección.

Hacer clic Continuar y seleccione su ID de aplicación de la lista. Seleccione los certificados que desea incluir en el perfil de aprovisionamiento y haga clic en Continuar. Debido a que estamos creando un perfil de aprovisionamiento para el desarrollo, también debemos especificar qué dispositivos deben incluirse en el perfil de aprovisionamiento. Asegúrese de que su dispositivo de prueba está incluido. Asigne un nombre razonable al perfil de aprovisionamiento y haga clic en Generar.

Descargue el perfil de aprovisionamiento y arrástrelo en Xcode para agregarlo. Actualice la configuración de compilación de su objetivo en Xcode para usar el nuevo perfil de aprovisionamiento. Cree y ejecute su aplicación para asegurarse de que todo funciona como se espera.

Si tiene problemas, verifique que el identificador del paquete de su aplicación coincida con el de la ID de la aplicación. Tenga en cuenta que un identificador de paquete distingue entre mayúsculas y minúsculas.

Si ha seguido los pasos descritos en este tutorial, su aplicación debe indicarle el siguiente mensaje.

Si tocas DE ACUERDO, su aplicación le pedirá al sistema operativo un token de dispositivo. Si esto tiene éxito, el aplicación: didRegisterForRemoteNotificationsWithDeviceToken: método de la UIApplicationDelegate Se invoca el protocolo, entregándole el token del dispositivo. Debido a que agregamos una declaración de registro a este método, el token del dispositivo también debe registrarse en la consola en Xcode.

Push [2182: 60b] Se registró para notificaciones remotas con token de dispositivo<131cec1a 64cf8f4c 80009196 6157311d c774df92 056c74c2 e5538e52 db4848f1>)

6. Enviando Notificaciones Push

Para comprobar si llegan las notificaciones push que envía, debe tener un servidor en su lugar al que su aplicación pueda enviar el token del dispositivo. Ese backend puede conectarse con los servidores de Apple para enviar notificaciones push.

No cubriré este aspecto de las notificaciones push en este tutorial, pero esta es la parte fácil de las notificaciones push, especialmente si está utilizando un servicio como Parse o Urban Airship.

También puedes usar Houston, una gema de rubíes desarrollada por Mattt Thompson, que facilita el envío de notificaciones push.

Conclusión

Espero que este tutorial le haya mostrado que las notificaciones push no son tan difíciles de configurar como la mayoría de los desarrolladores piensan. Es cierto que requiere un poco de manipulación de claves y certificados, pero una vez que entiendes las partes móviles, no es tan difícil de entender y configurar..

La verdad es que lo difícil es crear claves y certificados. El manejo de las notificaciones push en su aplicación iOS es muy fácil y directo.