Question

Je reçois un message d'erreur après l'ajout de ce code de parse.com:

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

Je ne comprends pas vraiment ce qui se passe, mais j'obtiens ce message d'avertissement dans le journal:

Vous avez mis en œuvre -[ application:didReceiveRemoteNotification:fetchCompletionHandler:], mais il faut encore ajouter à distance "notification" à la liste de vos pris en charge UIBackgroundModes dans votre Info.plist.

Je pense que l'ajout dans votre fichier plist UIBackgroundModes - remote-notification serait résoudre le problème,

Mais quand je fais ça, il change les paroles de la suivre:

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

Qui mon application ne permet pas de le faire, donc je suis confus quant à pourquoi je fais cela en premier lieu.

Était-ce utile?

La solution

Si vous n'avez pas l'intention de récupérer les données en réponse à une notification à distance, je pense que vous pouvez mettre en œuvre cette méthode du délégué:

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

par exemple

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

au lieu de celui que vous utilisez.

Autres conseils

Si vous ne voulez pas ajouter manuellement des clés dans votre .plist fichier alors voici une version graphique de @MurraySagal réponse, suivez les étapes de 1 à 7 et vous serez fait.:)

enter image description here

Note:Si vous ne pouvez pas lire les étapes, vous pouvez effectuer un zoom arrière de votre onglet actif en utilisant la combinaison de Commande++ (pour zoomer) et Commande+- (pour effectuer un zoom arrière).Si Commande ne fonctionne pas, vous pouvez essayer avec Ctrl.

Je pense que @djshiow n'est pas la résolution de votre problème.

Vous devez ajouter la ligne suivante dans votre info.fichier plist:

remote-notification

1) Ajouter une nouvelle ligne et, sur la colonne de gauche, sélectionnez Contexte les modes.

2) Sur l'Élément 0 de ligne, cliquez sur la colonne de droite et tapez: à distance de notification.Appuyez Sur Entrée.

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

Dans Xcode 6:

  • Dans le Projet de navigation, cliquez sur le projet
  • Dans les Projets et les Cibles de la liste, cliquez sur la cible.
  • Cliquez Sur Les Capacités De
  • Développez et mettez sur Fond Modes
  • Cliquez Sur Notifications À Distance

Cela va ajouter de la Required background modes clé et App downloads content in response to push notifications la valeur de info.plist.

Lorsque vous utilisez le nouveau didReceive...la méthode que vous êtes censé faire deux choses:

  1. Ajoutez l'entrée nécessaire dans votre plist
  2. Ajouter un gestionnaire d'achèvement qui gérera l'événement pour la manipulation de données

Si vous ne souhaitez pas télécharger toutes les données, vous pouvez ajouter ceci à votre didReceive...méthode

completionHandler(.NoData)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top