Advertencia de análisis de didReceiveRemoteNotification:fetchCompletionHandler

StackOverflow https://stackoverflow.com//questions/20009006

  •  20-12-2019
  •  | 
  •  

Pregunta

Recibo un error después de agregar este código de parse.com:

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    if (application.applicationState == UIApplicationStateInactive) {
        [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
    }
}

Realmente no entiendo qué está pasando, pero recibo esta advertencia en el registro:

Ha implementado -[Aplicación: DidReceiverEmotenotificación: FetchCompletionHandler:], pero aún necesita agregar "Notificación remota" a la lista de sus UibackGroundModes compatibles en su información.

Creo que agregar tu archivo plist UIBackgroundModes - remote-notification solucionaría el problema,

Pero cuando hago eso, cambia las palabras a lo siguiente:

Required Background Modes -> App downloads content in response to push notifications

Lo cual mi aplicación no hace, por lo que no sé por qué estoy haciendo esto en primer lugar.

¿Fue útil?

Solución

Si no tiene la intención de obtener datos en respuesta a una notificación remota, creo que puede implementar este método de delegado:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 

e.g.

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
    if (application.applicationState == UIApplicationStateInactive) {
        [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
    }
}

en lugar de la actual que está utilizando.

Otros consejos

Si no desea agregar manualmente la clave en su .plist archivo, aquí hay una versión gráfica de la respuesta de @MurraySagal, siga los pasos del 1 al 7 y listo.:)

enter image description here

Nota:Si no puede leer los pasos, puede alejar la pestaña actual utilizando una combinación de Dominio++ (para acercar) y Dominio+- (para alejar).Si Dominio no funciona, puedes probar con Control.

creo que @djshiow no está resolviendo su problema.

Debe agregar lo siguiente en su archivo info.plist:

notificación remota

1) Agregue una nueva fila y, en la columna izquierda, seleccione Modos de fondo requeridos .

2) En el ítem 0 fila, haga clic en la columna derecha y escriba: notificación remota .Presione ENTER.

Fuente: http://hayageek.com/ios-silent-push-notifications/

En Xcode 6:

  • En el Navegador de proyectos, haga clic en el proyecto.
  • En la lista Proyectos y Objetivos, haga clic en el objetivo.
  • Capacidades de clic
  • Expandir y activar Modos de fondo
  • Haga clic en Notificaciones remotas

Esto agregará el Required background modes clave y App downloads content in response to push notifications valor a info.plist.

Cuando usa el nuevo método Didreceive ... Se espera que haga dos cosas:

  1. Agregue la entrada necesaria en su plist
  2. Agregar un manejador de finalización que manejará el evento para manejar los datos
  3. Si no desea descargar ningún DATOS, puede agregar esto a su método DIDRECEIVE ...

    completionHandler(.NoData)
    

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top