J'implémente des fonctionnalités de kiosque à journaux dans une application et bien que l'application reçoive la notification push, elle ne démarre pas en mode d'arrière-plan.
Si je tape l'alerte de notification, l'application démarre et je peux voir "content-available": 1 est présent dans le dictionary et le problème est également téléchargé, mais l'application n'est pas automatiquement lancée.
J'ai ajouté à la plist:
<key>UIBackgroundModes</key> <array> <ssortingng>newsstand-content</ssortingng> </array>
et à didFinishLaunchingWithOptions:
[[NSUserDefaults standardUserDefaults]setBool: YES forKey:@"NKDontThrottleNewsstandContentNotifications"]; // for testing purposes [[NSUserDefaults standardUserDefaults] synchronize]; [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeNewsstandContentAvailability )];
Je vois également que mon application n'est pas affichée sous Paramètres -> Store -> Téléchargements automatiques (et d'autres magazines y apparaissent).
Est-ce que je manque quelque chose? Est-ce censé fonctionner dans l'environnement sandbox?
Quelques clarifications
NSDictionary * payload = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
if (payload && [[payload objectForKey: kContentAvailablePush] caseInsensitiveCompare: @ "1"] == NSOrderedSame) {NSLog (@ "Lancé en raison d'une notification NS"); }
Assurez-vous que UINewsstandApp = YES a été défini dans votre plist
Vous devez vous inscrire à la notification en kiosque pour apparaître dans les Paramètres et recevoir les "notifications en kiosque". Pour vous inscrire, ajoutez ceci à votre application:didFinishLaunchingWithOptions:
::
// Add registration for newsstand notifications // In your application:didFinishLaunchingWithOptions: [[UIApplication sharedApplication] registerForRemoteNotificationTypes: UIRemoteNotificationTypeNewsstandContentAvailability];
L'user sera invité à accepter le téléchargement en arrière-plan ou non.
Jetez un oeil à ce tutoriel vraiment complet sur les applications de kiosque à journaux: http://www.viggiosoft.com/blog/blog/2011/10/17/ios-newsstand-tutorial/
{"aps": {"badge": 1, "alert": "test","content-available":1}}
C'est une bonne charge utile. {"aps": {"badge": 1, "alert": "test"},"content-available":1}
C'est une charge utile incorrecte.
C'est ce qui arrive quand le contenu disponible est dans la charge utile:
Il doit y avoir une action de l'user pour démarrer l'application essentiellement en ajoutant le message d'alerte dans la notification push.
la source
http://samwize.com/2015/08/07/how-to-handle-remote-notification-with-background-mode-enabled/
Cependant, cela ne résout pas votre problème. Comme solution de contournement, vous pouvez utiliser l'extraction d'arrière-plan, qui réveille l'application à chaque intervalle de time.