Les notifications push peuvent-elles être utilisées pour exécuter du code sans avertir l'user?

J'ai une application qui doit communiquer avec un server (pour rafraîchir ses données) une fois toutes les 24 heures. Cela doit se produire même si l'application n'est pas ouverte, ni en arrière-plan.

Idéalement, ce que j'aimerais, c'est:

  • Toutes les 24 heures, mon server envoie une notification push à l'iPad
  • Cela réveille l'application et exécute le code nécessaire pour actualiser datatables
  • La notification est ensuite supprimée

Est-ce que c'est possible?
L'application est-elle seulement réveillée APRÈS que l'user clique sur la notification? Ou puis-je exécuter du code avant d'afficher la notification? Puis-je même ignorer le message de notification?

Si les notifications Push ne sont pas la bonne façon de le faire, qu'est-ce que ???

Merci les gars!

Avec la sortie d'iOS 7, cela est finalement possible en utilisant les notifications distantes / silencieuses. Ils fonctionnent de la même manière que les notifications Push, mais au lieu d'alerter immédiatement l'user, ils peuvent lancer le mode d'extraction en arrière-plan et download / download un nouveau contenu.

Voici un tutoriel simple: http://www.objc.io/issue-5/multitasking.html

Cela n'est possible que si votre application est une application Kiosque, si c'est le cas, vous pouvez envoyer une notification push avec le content-available: true une fois toutes les 24 heures.

Si ce n'est pas une application de kiosque à journaux, vous pouvez utiliser des clôtures GPS pour exécuter du code. Il est permis de laisser l'user installer des clôtures GPS s'il veut que l'application se mette à jour lorsque l'user s'approche d'une zone (c'est-à-dire son domicile / travail). Cela réveillera l'application et vous pourrez alors exécuter le téléchargement en arrière-plan. Instapaper par exemple le fait.

Si la période est toujours de 24 heures, vous pouvez utiliser des notifications locales au lieu de notifications push.

votre application ne pourra pas exécuter de code à less que l'user n'ouvre la notification push, les notifications push sont gérées par le operating system et votre application n'a aucun contrôle sur elles tant qu'elle n'est pas active ou en arrière-plan. guide de programmation de notification

une autre façon d'accomplir ce que vous essayez de faire est d'get datatables du server chaque fois que l'application est démarrée et que la dernière mise à jour a eu lieu 24 heures plus tôt,

  1. chaque fois que vous contactez le server, enregistrez la date dans NSUserDefault
  2. Chaque fois que l'user ouvre l'application, vérifiez si le dernier contact du server a eu lieu avant 24 heures, puis actualisez datatables.