ver todas notificaciones mail las correo antiguas agrupar activar ios xamarin.ios push-notification apple-push-notifications

ios - todas - Recibir notificaciones push mientras está en segundo plano



ver notificaciones antiguas en iphone (4)

Sé que esto está cubierto en muchos lugares, pero no puedo resolverlo. Yo uso Urban Airship para notificaciones push. Todo parece estar bien, excepto que cuando mi aplicación está en segundo plano, no se llama a didReceiveRemoteNotification . Funciona cuando está en primer plano: puedo procesar mensajes correctamente. Y puedo acceder a los mensajes desde las opciones de lanzamiento si el mensaje se toca desde el centro de notificaciones. Pero cuando en el fondo, un mensaje que envía - iOS muestra la alerta - no se didReceiveRemoteNotification . Cuando toco el ícono de mi aplicación (no desde el centro de notificaciones) la aplicación aparece en primer plano y no tengo idea de que la notificación esté presente. ¿Algunas ideas?


De la guía de programación APNS:

Revisemos los posibles escenarios cuando la operación entrega una notificación local o una notificación remota para una aplicación.

La notificación se entrega cuando la aplicación no se ejecuta en primer plano. En este caso, el sistema presenta la notificación, mostrando una alerta, identificando un ícono, quizás reproduciendo un sonido.

Como resultado de la notificación presentada, el usuario toca el botón de acción de la alerta o toca (o hace clic) el ícono de la aplicación. Si se toca el botón de acción (en un dispositivo que ejecuta iOS), el sistema inicia la aplicación y la aplicación llama a la aplicación de su delegado: didFinishLaunchingWithOptions: method (si está implementado); pasa en la carga útil de notificación (para notificaciones remotas) o el objeto de notificación local (para notificaciones locales).

Si se toca el icono de la aplicación en un dispositivo con iOS, la aplicación llama al mismo método, pero no proporciona información sobre la notificación .

Creo que la última oración describe su caso y explica por qué su aplicación no recibe información sobre la notificación.


Método didFinishLaunchingWithOptions: (NSDictionary *) parámetro launchOptions launchOptions una de las claves del diccionario es UIApplicationLaunchOptionsRemoteNotificationKey que contiene la información de notificación push presionado.

Puede presionar la información recibida después de que el controlador raíz principal del recorrido se inicialice. Lo guardo en una propiedad y luego lo presiono después de que se inicialice la vista.

if (launchOptions) { if ([launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]) { self.notificationToMakeAction = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; } }


didReceiveRemoteNotification está llamando ÚNICAMENTE si la aplicación está en primer plano o si la aplicación se acaba de lanzar o se compra de fondo a primer plano

enlace en Apple y algunas question


application:didReceiveRemoteNotification: llamará en segundo plano solo cuando haya agregado la clave de content-available con el valor 1 en la carga de notificación. En el caso de Urban Airship, puede enviar Test Push en la pestaña Configuración. Ejemplo de carga útil para notificaciones push:

{ "aps": { "alert": "aaaa", "badge": "+1", "content-available": "1" }, "device_tokens": [ "86BA71E361B849E8312A7B943BA6B26A74AB436381CF3FEE3CD9EB436A12A292" ] }

Apple lo ha mencionado claramente en su documentación ...

Para que una notificación automática active una operación de descarga, la carga útil de la notificación debe incluir la clave de contenido disponible con su valor establecido en 1. Cuando esa clave está presente, el sistema activa la aplicación en segundo plano (o la inicia en segundo plano) y llama a la aplicación del delegado de la aplicación: didReceiveRemoteNotification: fetchCompletionHandler: method. Su implementación de ese método debe descargar el contenido relevante e integrarlo en su aplicación. https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html