¿Cómo puede una aplicación de iOS realizar una acción para un usuario después de que toque su notificación en el Centro de notificaciones sin requerir una entrada adicional o una acción explícita del usuario?

El punto clave para comprender cómo aprovechar las notificaciones es asegurarse de que la aplicación “ya sepa cómo hacer todo lo que usted quisiera que hiciera” de antemano. Estas acciones generalmente permanecen inactivas, esperando ser llamadas al servicio. A veces se pueden invocar a través de una notificación, así como explícitamente mientras se usa la aplicación. Todo depende de la acción y el contexto.

También tenga en cuenta la distinción entre notificaciones push y locales. El primero es instigado por una fuente / servidor externo, y el segundo es instigado desde la propia aplicación. En particular, las cargas útiles de notificaciones push, por diseño, son pequeñas. ¡No más de 256 bytes! Empaque ese JSON tan fuerte como pueda (sin espacios en blanco superfluos, yadda yadda), y solo incluya la información suficiente para informar a la aplicación sobre qué hacer a continuación. En lugar de proporcionar un perfil de usuario completo, por ejemplo, proporcionaría la ID de usuario y la aplicación buscaría lo que fuera necesario en función de esa ID.

Una vez que llega la notificación y se inicia la aplicación, esa carga útil se presenta al delegado de la aplicación, momento en el que la aplicación puede separar la carga útil y decidir qué curso de acción tomar. Puede iniciar un controlador de vista (modal o de otro tipo), o interrumpir lo que se esté haciendo con una vista de alerta (aunque si el usuario opta por seguir usando las vistas de alerta para las notificaciones, dos seguidas pueden ser un poco desconcertantes, experiencia del usuario inteligente) , o muestra una vista más suave que parece flotar por encima de todo lo demás (es decir, si se ve lo suficientemente diferente y tiene más carácter con la aplicación frente a una simple vista de alerta, eso le permite al usuario saber que no es solo otra alerta, algunas las personas obtienen “ceguera a la vista de alerta”, por lo que a veces es bueno contrarrestar eso con elementos de interfaz de usuario atractivos).

Si aparece más tipos de notificaciones, no hay problema. Simplemente extienda su controlador de notificaciones para “hacer lo que sea necesario” en función de la carga útil.

¡Espero que esto ayude!

Esto se llama Metadata y se puede incluir en el sobre que su Servicio de notificaciones push envía a los teléfonos. Su aplicación deberá comprender qué hacer con los metadatos que se le envían desde una notificación push.

En su muestra “Joe sale a correr. Toque para animarlo”, enviaría los metadatos la identificación de Joe y la identificación de la acción “alegría”. La aplicación comprenderá esas dos ID y lo llevará a la pantalla exacta donde usted decide qué hacer.

Es bastante sencillo, una vez que sabe cómo enviar notificaciones push personalizadas. Espero que eso ayude.

En términos más técnicos, cuando un usuario inicia una aplicación interactuando con una notificación (ya sea notificación de inserción o notificación local), se inicia la aplicación y se llama a la aplicación UIApplicationDelegate: didFinishLaunchingWithOptions: método. El launchOptions pasado a su delegado es un NSDictionary que contendrá los metadatos de notificación y la carga útil.

Como implementador, también deberá preocuparse por las notificaciones recibidas mientras se ejecuta la aplicación y manejar los métodos didReceiveLocalNotification: y didReceiveRemoteNotification: también.

Lo que elija hacer con los datos de la notificación depende totalmente de usted, pero ciertamente puede realizar algún tipo de procesamiento automático que no requiera la intervención del usuario. Hacerlo se deja como un ejercicio para el lector o profesional competente. 😉

Sí, esto es casi obvio. El servidor envía la “carga útil” que contiene el texto “Joe sale a correr. Toca para animarlo”, así como una identificación de usuario para Joe “joetherunner” y una identificación de acción para animar “animar”. El destinatario toca y lanza su aplicación. Luego, su aplicación interpreta la carga útil y envía la acción adecuada a su servicio web. Hecho.

Lo único que me gustaría agregar a todas estas excelentes respuestas es que debe tener cuidado al realizar acciones automatizadas desde una notificación: la razón es que a menudo las personas simplemente hacen clic (o deslizan) sin leer los detalles, y si lo hace Algo importante que debe solicitar confirmación una vez que se abra su aplicación.

En su ejemplo de enviar un mensaje a otro usuario para animarlo, debe decidir en el contexto de su aplicación si hacer esto automáticamente podría ser percibido por algunos usuarios como intrusivo …

Sin embargo, su segundo ejemplo (abrir una aplicación en modo cámara) no debería ser un problema, ya que el usuario siempre puede cancelar si es necesario; todavía no se ha realizado ninguna acción.